创建可远程登录用户
安装 Mysql 后默认的 root 用户是本地用户,只可以在本地登录。如下所示:
可以看到 root 用户的 host 为 127.0.0.1 或者 localhost 或者本地主机名,说明只允许本地登录。因此我们需要创建一个可以远程登录的用户,这是通过控制 host 项的值来完成的。如下所示创建了一个可以从任意地方登录的 aaa 用户:
可见用户 aaa 的 host 为 %,表示可以从任意地方登录。当然为了安全着想,如果总是从一个固定的外部地址登录,那么这里的 % 最好就改为这个固定的 ip 地址。
无论怎样,我们这时候已经创建好一个可以远程登录的用户啦。试试去登录吧!
仍然无法登录
如果如上正确设置远程登录用户后仍然无法登录,那么很有可能是以下两个原因导致的:
- Mysql 的配置文件绑定了只允许本地用户登录
- 防火墙屏蔽了 Mysql 默认的 3306 端口。
一个个来排除吧!
检查配置文件
Mysql 的配置文件为 my.cnf,在我的 CentOS7 系统中路径为 /etc/my.cnf,不同系统中可能不一样,可以用 find 命令查找。
打开 my.cnf,寻找这么一行配置信息:
bind-address = x.x.x.x
如果这里 x.x.x.x 为 127.0.0.1,说明 Mysql 绑定了本地地址,只允许本地登录。如果这里 x.x.x.x 为 0.0.0.0 或者压根就没有上面这一行配置,说明 Mysql 允许从任意地方登录。
所以如果配置文件里没有这一行,那就什么都不用管;如果有,那就注释掉或者改成 0.0.0.0 即可。
检查防火墙
编辑防火墙的配置文件,在我系统上为 /etc/sysconfig/iptables,查看里面是否有有关于端口 3306 的规则,如果有就将它相应修改为 ACCEPT,如果没有,就添加以下这一条规则:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
然后重启防火墙即可。如下:
service iptables restart
总结
以上就是我总结的关于在 Linux 系统上设置 Mysql 远程登录的相关知识啦,希望能够对各位朋友有所帮助,^_^。