共计 1083 个字符,预计需要花费 3 分钟才能阅读完成。
在 CentOS 虚拟机上安装好了 MySQL 服务以后,在 Windows 上用 Workbench 客户端去连接时碰到很多问题,现在把解决过程记录一下。
1. 在 Windows 上 ping CentOS IP 是可以 ping 通的,在 Workbench 上配置好后出现如下提示,
在 Windows 命令行里输入 telnet 192.168.199.129 3306 执行,也得到:could not open connection to the host, on port 3306 这样的提示。
在网上查了一下,觉得可能是 3306 端口没有打开,先检查一下 3306 端口的使用情况,
3306 这个端口没有被别的进程占用。然后看看防火墙的情况,CentOS7 中防火墙改成了 firewall,查看 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。这个时候只要在 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 服务了。
: