阿里云ECS Unbuntu16.04搭建云mysql 5.7
一、简介:
由于自己笔记本不好,不想每次本地安装mysql数据库,然后购买了云数据库,感觉还是挺不划算的,自己也用不到内存多大的数据库,于是想做一个第三方提供的一摸一样的云mysql数据库。为了写这篇文章,我专门重装了自己的阿里云ECS,第二次搭建了云数据库,如果觉得有用,还请点一个赞。最后我会将自己做好的云数据库提供到文章末尾,可以用workbench,或者navicat连接一下看看。
要求:
阿里云学生ECS,Ubuntu 16.04, Xshell7(用阿里云网页终端,ssh都是可以的)
二、安装mysql 5.7:
我全程采用root用户安装的。借鉴了这篇文章:阿里云 Ubuntu 14.04 安装mysql 5.6
1. 升级apt-get
sudo apt-get update
2. 安装 mysql-client-core-5.7
sudo apt-get install mysql-client-core-5.7
3.安装mysql-client-5.7
sudo apt-get install mysql-client-5.7
4. 安装 mysql-server-5.7
这一步安全成功会要求设置密码:123456,后面会用到。
sudo apt-get install mysql-server-5.7
5. 修改默认编码为utf-8
我在项目里面实现的时候发现没有设置会出现中文解析错误,这个时候需要在配置文件 /etc/mysql/my.cnf 中设置一下编码方式
vim /etc/mysql/my.cnf
然后在文件中添加如下配置:
[client]
default-character-set = utf8
[mysqld]
character-set-server=utf8
退出编辑后重启mysql:
service mysql restart
三、Mysql 服务远程访问
上诉安装都是在本机服务器上进行,最后也只有本机能连接上mysql,没有绑定到服务器的ip上,这就需要修改配置和mysql用户设置。这部分我借鉴的文章是:Ubuntu安装MySQL和配置远程连接。
1:注释绑定127.0.0.1
mysql 5.6的配置文件时:/etc/mysql/my.cnf,而5.7的配置文件是:/etc/mysql/mysql.conf.d/mysqld.cnf,需要注释掉本地服务器绑定。
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
2. 授权非本机用户登陆数据库
输入以下命令进入数据库客户端,需要输入密码:123456(这是我设置的)
mysql -u root -p
再mysql客户端下输入以下命令行:
# 指定root用户的Host字段为%
use mysql # 切换到数据库mysql
select user,host from user; # 查询user表中数据
update user set host='%' where user='root'; # 修改root账号的host字段为:%
# 给任意主机root账户连接mysql服务器权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges; # 刷新权限表,使配置生效
3. 重启mysql
先(ctrl+z)退出mysql客户端,然后输入以下命令:
service mysql restart
四、阿里云对外开放3306 mysql监听端口
需要从阿里云控制台上添加安全组规则去设置,可以看这篇文章:阿里云关闭防火墙端口不能外网访问,下图是我的配置:
五、大功告成,连接云mysql:
密码是:123456,用的workbench 8.0连接的