问题已解决,只能借用别人的图
用Navicat for MySQL连接远程数据库时,出现这个问题,然后尝试了很多方法都没能解决这个问题,今天终于找到了。
方法一,Linux防火墙开放3306端口
1、在Linux输入: firewall-cmd --add-port=3306/tcp,或者firewall-cmd --permanent --zone=public --add-port=3306/tcp
提示:FirewallD is not running
步骤一
2、通过systectl status firewalld查看防火墙状态,如果是dead状态,则防火墙为开启。
步骤二
3、通过systemctl start firewalld开启防火墙,没有任何提示则表示开启成功。
步骤三
4、再次通过systemctl status firewalld查看防火墙状态,如果现实running则表示已开启。
步骤四
5、再次执行firewall-cmd --add-port=3306/tcp,或者firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示开启成功。
6、Navicat for MySQL重新测试连接连接;或者关闭重新打开,再次测试连接。
以上方法转载:https://www.cnblogs.com/rxbook/p/8110143.html
注:如果该方法还没有能解决的话,尝试下面的方法。
方法二,本地配置
1、进入cmd(快捷键win+r,然后输入cmd,确定),然后进入MySQL下的bin目录,如我的MySQL安装在F:\PHP\JieYaBao\mysql
进入bin目录
2、进入MySQL数据库:mysql -u root -p回车,然后输入本地MySQL的密码,默认密码是123456。
进入MySQL
3、执行:use mysql,在执行:select host,user from user;
查看user数据表
4、执行:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '远程数据库的密码' WITH GRANT OPTION;
5、执行:GRANT ALL PRIVILEGES ON *.* TO 'root'@'服务器的IP地址,如118.23....' IDENTIFIED BY '远程数据库的密码' WITH GRANT OPTION;
6、执行:flush privileges;再次执行:select host,user from user;这时可以看到添加了两条数据到表里。Navicat for mysql重新测试连接,或者关闭重开打开在测试连接。
添加%、IP到表中
如果到这里还没有解决的话,那就只能百度尝试其他方法了。。。。。









网友评论