您的位置:首页 > 运维架构 > Linux

Linux 设置 Mysql 可远程登录

2018-03-22 12:52 190 查看
创建可远程登录用户

仍然无法登录

检查配置文件

检查防火墙

总结

创建可远程登录用户

安装 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 远程登录的相关知识啦,希望能够对各位朋友有所帮助,^_^。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息