mysql远程连接

mysql远程连接需要进行配置

Mysql配置

进入命令行

1
2
3
4
user mysql;//进入mysql库
update user set host ='%' where user='root';//设置root用户的可允许host为%,即所有的host都可以访问(默认的是localhost)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';//如果root的plugin列中已经为Mysql_native_password了,可以不写
flush privileges;//清空缓存

配置好之后再重启服务器,即可。
如有必要,可在/etc/my.cnf可进行相关配置

1
2
3
[mysqld]
bind-address=0.0.0.0
port=3306

防火墙配置

如果防火墙没有把端口放开,则远程连接会被服务器给拒绝,而无法连接到mysql。
配置防火墙的命令如下:

1
2
3
4
5
6
7
8
centos防火墙命令:
systemctl start firewalld //开启防火墙
firewall-cmd --zone=public --add-port=1935/tcp --permanent //开放指定端口
firewall-cmd --permanent --remove-port=123/tcp //移除指定端口
firewall-cmd --add-port=123/tcp --permanent //添加指定需要开放的端口
firewall-cmd --reload //重载入添加的端口
firewall-cmd --query-port=123/tcp //查询指定端口是否开启成功
firewall-cmd --zone=public --list-ports //查询所开放的端口

服务器配置

如果是虚拟服务器(如阿里云,实体服务器没弄过,不清楚),还需要配置安全组规则。进入服务商的控制台,然后配置安全组规则如下

授权策略 协议类型 端口范围 授权对象
允许 自定义TCP 目的:3306/3306 源:0.0.0.0/0