17370845950

远程连接MySQL服务器

在centos虚拟机上成功安装mysql服务后,尝试通过windows上的workbench客户端进行连接时,遇到了诸多问题。以下是解决这些问题的详细步骤记录。

1.在Windows上ping CentOS的IP地址是通的,但在Workbench上配置后,出现了如下提示,

同时,在Windows命令行中输入 telnet 192.168.199.129 3306 执行时,得到的反馈是:could not open connection to the host, on port 3306。

在线查询后,推测可能是3306端口未开放,首先检查3306端口的使用情况,

3306端口未被其他进程占用。接着查看CentOS7中改用firewall的防火墙状态,

firewall防火墙正在运行。检查3306端口是否开放,输入 firewall-cmd --query-port=3306/tcp,如果结果是no,则执行 firewall-cmd --permanent --add-port=3306/tcp 开放3306端口,

然后重启防火墙,输入 firewall-cmd --reload。

2.完成上述操作后,再次在Windows命令行中输入 telnet 192.168.199.129 3306 执行,得到的提示是:host is not allowed to connect mysql。

经网络查询,发现可能涉及权限问题,有两种解决方案,

第一个方法,可能是你的账号仅允许从本地登陆,只能在localhost的计算机上登入mysql后,修改 "mysql" 数据库里的 "user" 表中的 "host" 项,从"localhost"改为"%",

在CentOS虚拟机中进入MySQL,执行以下语句,

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

但修改后仍然无法解决,继续提示 host is not allowed to connect mysql。

尝试第二个方法,通过授权解决问题,例如你想让myuser使用mypassword从任何主机连接到MySQL服务器,执行以下语句,

mysql>grant all privileges on . to 'myuser'@'%' identified by 'mypassword' with grant option;

mysql>flush privileges;

执行后成功解决问题,可以通过Workbench成功连接到MySQL服务。