[已解决]2002-can‘t connect to server on 192.168.xx.xx(10061)MySQL数据库无法远程连接

MySQL数据库无法连接到Linux系统中的MySQL服务器上,我来总结一下我踩过的坑吧,希望伙伴们能注意一下

我使用的虚拟机和服务,数据库客户端链接工具

VM

docker 

MySQL57

navicat

出现上面问题的原因一般有以下几种?

1. Linux中的防火墙没有关闭

关闭防火墙命令

systemctl stop firewall  #临时关闭防火墙
systemctl disable firewall  # 永久关闭防火墙

2. 远程MySQL中的端口号和navicat上的端口号不一致

使用以下命令登录到MySQL中

docker exec -it mysql /bin/bash  进入到容器内部

登录MySQL

mysql -u用户名 -p密码 -P端口号 -h(ip地址)

登录到数据库后查看当前数据库的端口号

show global variables like 'port';

bef55f419f9f449fb66f6d95d7a74265.png

 

如果端口号不正确,就改一下navicat中的端口号

a99509e019244cdfa7a615cc1da84933.png

 

3. 可能是服务器中的防火墙没有开放导致连接不上

提交一条允许3306端口的规则

iptables -I INPUT -p top --aport 3306 -j ACCEPT

4. 端口没有被监听到

在虚拟机中查看网络端口信息:

# netstat -ntpl 

之后查看防火墙状态,发现3306端口数据包都是丢失状态

# iptables -vnl

清除防火墙连中的规则

# iptables -F

 

5. MySQL数据库中的root权限不足,可能是localhost 远程服务识别不到

方式一:直接授权(推荐)

登录到mysql

执行以下命令

设置权限命令

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
从任何主机上使用root用户,密码:你的password(你的root密码)连接到mysql服务器:
  # mysql -u root -proot
  mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION

方法二:本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"

#mysql -u root -proot
  mysql>use mysql;
  mysql>update user set host = '%' where user = 'root';
  mysql>select host, user from user;

6. 使用 docker ps -a 查看一下MySQL中的进程是否正常开启运行

c7ffd24c81294f13806a2ec919e5d443.png

 我这里已经重启了,如果你没有重启,输入以下命令···

docker start mysql或ID号  #开启mysql服务

docker start mysql或ID号  #关闭mysql服务

docker restart mysql或ID号  #重启mysql服务

再次使用 docker ps -a 查看一下mysql是否启动

7. 在Windows中的网络共享中心中检查一下虚拟机有没有正常联网,如果没有连接网络,请启动一下网络

1)window 11 开启虚拟机网络适配器

6aa85debaf3444d1ad553c312d55ae25.png

 bcd9abb6a9b14134a252944eda57c97d.png

9e590ae1745f42d79b3061b8a3d76af1.png 

 开启以上虚拟机网络

2)同时也要检查一下虚拟机中的网络状态

6243cecc023a48a59f61acdedefd7d2e.png

至此

数据库mysql就可以连接成功了,以上为个人亲自验证,希望能给大家带来启发,即便没有解决相关问题,但也会给大家提供启发,这样你也不会迷路 

 

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
根据引用\[1\]和引用\[2\]的描述,错误信息"2003-Can't connect to MySQL server on '192.168.31.181' (10061 "Unknown error")"表示无法连接到位于192.168.31.181的MySQL服务器。这个错误可能是由于网络连接问题或者MySQL服务器配置问题引起的。 要解决这个问题,可以尝试以下几个步骤: 1. 确保MySQL服务器正在运行。可以通过在命令行中输入"sudo service mysql status"来检查MySQL服务器的状态。如果MySQL服务器没有运行,可以使用"sudo service mysql start"命令启动它。 2. 检查MySQL服务器的配置文件。根据引用\[2\]的描述,MySQL的配置文件位于"/etc/mysql/mysql.conf.d/mysqld.cnf"。确保配置文件中的IP地址和端口号与实际的MySQL服务器配置相匹配。 3. 检查网络连接。确保您的主机可以与MySQL服务器的IP地址进行通信。可以尝试使用"ping"命令来测试与MySQL服务器的连接。 4. 检查防火墙设置。如果您的主机上有防火墙,确保允许从主机到MySQL服务器的IP地址和端口的连接。 5. 检查MySQL用户权限。根据引用\[3\]的描述,您可能需要检查MySQL用户的权限设置,确保允许从您的主机连接到MySQL服务器。 如果您尝试了以上步骤仍然无法解决问题,建议您查看MySQL服务器的错误日志文件,以获取更多关于连接问题的详细信息。 #### 引用[.reference_title] - *1* *3* [主机连接vm虚拟机的mysql报错2003-Can‘t connect to MySQL server on ‘192.168.1.169“ (10060 “Unknown...](https://blog.csdn.net/qq_42025798/article/details/114218119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [2003-Can’t connect to Mysql server on’192.168.58.101’(10061 Unknown error) 解决方法](https://blog.csdn.net/qq_19175749/article/details/120212577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI@独行侠

你的鼓励将是我最大的动力,感谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值