美文网首页
CentOS7下两步搞定MySQL的远程连接

CentOS7下两步搞定MySQL的远程连接

作者: hanhandog | 来源:发表于2019-11-28 11:03 被阅读0次

一点感触

安装MySQL 5分钟,远程连接MySQL 5小时。虽说夸张了点,但只要你遇到过诸如2003错误,10060错误,还有经典的1045错误,你就能深深地体验到我的伤痛……来朋友,干一杯。
借着这次实验室的数据库服务器开局的机会,通过建立多个快照,反复测试,终于理清了MySQL的远程连接的头绪。原来真的好简单,两步就能搞定!!!

配置环境

  • 全新安装CentOS 7.7.1908(Core)
  • 全新安装MySQL 5.7.28-1
    • 服务启动正常
    • root密码已修改

第一步 配置firewalld

重要的事情最先说,就两行命令:

#firewall-cmd --permanent --add-service=mysql
#firewall-cmd --reload

保证MySQL服务器与客户端之间的物理连通,是排查问题的基本条件。全新安装的CentOS7的默认firewalld就是开启的,所以需要允许mysql服务通过。同样的,如果你们的环境里面启用了iptables,也需要放行mysql的通信。

第二步 修改MySQL user表

命令多一点,四条:

mysql> use mysql;
mysql> select host,user from user;
mysql> update user set host = '%' where user='root';
mysql> flush privileges;
对应操作日志截图:

此时,你用Navicat类似的客户端远程连一下,就顺利地连接上了,就这么简单!

PS

  • 从头到位没有修改过MySQL的配置文件——my.cnf,就是安装时怎样,现在还是怎样。大家可以下载我的配置看看。
  • skip_grant_tables,这个MySQL的配置文件my.cnf中[mysqld]下面的参数也能解决远程连接的问题。但我个人不喜欢放大安全权限,测试后放弃这个方法。
  • 类似下面这样的授权命令,也可以在第二步中采用,同上一条的理由,测试后我放弃这个方法。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 

参考资料

1.firewalld允许nginx\apache\mysql通过
2.mysql数据库远程访问设置方法
3.[小技巧]值得收藏的MySQL: Connection Refused排查方案

阅读原文

相关文章

网友评论

      本文标题:CentOS7下两步搞定MySQL的远程连接

      本文链接:https://www.haomeiwen.com/subject/vovwwctx.html