今天在ubuntu里面搭建mysql环境并且想远程连接的时候,在物理机上使用navicat连接出现了如下的一个问题。
问题如下:
使用navicat连接虚拟机上的mysql提示错误:Can’t connec to MySQL server on ‘xxxxx’(10060)
出现这个问题可能因为:
1.MySQL服务未启动
2.MySQL未授权远程连接
3.虚拟机防火墙或者3306端口未启用
所以就一步步看是哪个问题:
第一步,检查虚拟机mysql服务是否启动
输入命令 service mysql status
查看mysql的状态
第二步,检查MySQL是否开启远程权限
1.登陆mysql
mysql -u root -p
2.给MySQL开启允许远程连接的权限,输入以下语句`
mysql> use mysql;
mysql>grant all on *.* to 'root'@'%' identified by '1234';
%表示除localhost以外的所有地址都可以连接访问数据库服务器
3.查看是否授权成功,输入以下语句
mysql>select host, user from user;
第三步,检查虚拟机防火墙和端口
退出MySQL,输入命令 netstat -ntpl
检查端口信息
这里如果:3306前面有127.0.0.1,说明3306端口仅对127.0.0.1服务器开放,这里就需要去修改mysql的配置文件了。
输入命令:vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改下图里的内容,即注释掉这一行。
输入命令 iptables -vnL|grep 3306
回车,查看防火墙是否设置了3306端口
如果回车后没数据,说明没有3306端口,如果回车后显示3306端口是drop状态,都需要修正,方法如下:
输入命令然后回车
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
再次输入 iptables -vnL|grep 3306
回车即可看到3306端口状态信息:
再使用navicat连接mysql就没有问题了。
参考博客链接:https://blog.csdn.net/weixin_49015210/article/details/117748687