解决虚拟机(linux)连接不上本地宿主(win10)数据库(mysql)问题

时间:2024-03-15 19:59:19

出现这个问题,首先要确定以下设置是否完成.

1.linux的防火墙是否开启,建议关闭

2.本地数据库mysql是否允许远程连接

3.本地系统3306是否对外开放(我是在这个地方出了问题).

步骤一:首先查看防火墙是否开启,常用命令

[[email protected] ~]# service iptables status

iptables: Firewall is not running.

参考博客:https://blog.csdn.net/lv_shijun/article/details/52453882

步骤二:其次,数据库是否允许远程连接

增加一个host名字为%,密码为root的用户

修改权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 

刷新权限:flush privileges;

参考博客:https://blog.csdn.net/weixin_42813765/article/details/82185103

步骤三:最后为本机系统增加入站规则(关闭或者开启本机防火墙无效)

即增加一个需要开放远程连接的端口号

参考博客:http://www.cnblogs.com/klsw/p/8782595.html

相关操作

1.远程访问数据库命令:mysql -h服务器 ip地址 -P 3306 -uroot -p

如:mysql -h192.168.25.1 -P3306 -uroot -p

需要注意的问题,虚拟机连接宿主主机的ip为当前网段的网关,即XXX.XXX.XXX.1

解决虚拟机(linux)连接不上本地宿主(win10)数据库(mysql)问题

如果出现这个错误,说明无法连接数据库,很有可能是远程端口号未开启,参照步骤三操作.

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.25.1' (110)

还有可能出现这个错误,偶然出现的现象,具体原因不详,过一段时间就成功连接了

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 0

2.如何确定3306端口连通性

wget ip:port

如:wget 192.168.25.1:3306

如果连通会显示:

解决虚拟机(linux)连接不上本地宿主(win10)数据库(mysql)问题

如果连接失败,会自动尝试重连.

解决虚拟机(linux)连接不上本地宿主(win10)数据库(mysql)问题