Mysql5.6默认只允许本地提供服务,如需外网访问要进行相关配置,记录如下。
一、设置MySQL服务允许外网访问
修改mysql的配置文件,有的是my.ini(windows),有的是/etc/my.cnf(linux),
在配置文件中增加
[mysqld]
port=3306
bind-address=0.0.0.0
然后重新启动mysql服务,执行 systemctl restartmysqld.service (centos7)。
二、设置mysql用户支持外网访问
需要使用root权限登录mysql,更新mysql.user表,设置指定用户的Host字段为%,默认一般为127.0.0.1或者localhost。
如果新增用户进行外网访问,请跳转到第4步。
1.登录数据库
mysql -u root -p
输入密码
mysql> use mysql;
2.查询host
mysql> select user,host from user;
3.创建host
如果没有"%"这个host值,就执行下面这两句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;
4.授权用户
(1)任意主机以用户root和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '用户密码' WITH GRANT OPTION;
mysql> flush privileges;
*.* 表示所有数据库和所有表,如果只想某个库下的表,库名.* ,或者 库名.表名
'用户名'@'%' : % 表示所有访问地址,或进行指定 '用户名'@'192.168.1.247'
注意:建议直接新增用户,使用新用户进行外网登录。可以省略前3步。
(2)IP为192.168.133.128的主机以用户myuser和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.133.128' IDENTIFIEDBY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;
补充:
Linux 端口开放:
Firewall-cmd --zone=public --add-port=3306/tcp --permanent
--permanent 表示永久