解决mysql密码正确的情况下而无法连接的问题

问题描述

这段时间使用Java连接mysql的时候时不时出现无法连接的情况。
我再三核对了账号密码数据库名,发现都没有错误。

问题分析

进行了以下尝试:
1取消password字段进行连接,发现提示连接错误,但提示我使用了密码
2更改成端口号进行连接,提示连接不到服务;当我关掉mysqld服务,并把代码中端口号改回3306,发现依然提示连接不到服务
推测可能是3306上有两个mysql服务

问题解决

事先关闭mysql服务
netstat命令可以查看端口占用情况,其中

netstat -a -n  #显示各个端口占用
netstat -ano   #显示各个端口占用和进程PID

开始--运行--cmd 确定或回车进入命令提示符窗口,键入netstat -ano 即可看到所有连接的端口占用情况及PID,然后在任务管理器中找到这个PID所对应的程序,如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"-"PID"前打上对勾。
也可以用以下办法确定是那个程序占用了端口。

进入命令提示符然后键入netstat -aon|findstr "3306"(例如我要查看3306端口是被那个应用程序占着)

C:Documents and SettingsAdministrator>netstat -aon|findstr "3306"
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       2000
C:Documents and SettingsAdministrator>tasklist|findstr "2000"
mysqld-nt.exe                  252 Console                 0      17,820 K

由此可以看出是mysqld-nt.exe占用着3306端口。

找到占用的进程后,便可以通过任务管理器,找到对应名字,右键选择打开所在位置,设法删除改名卸载都可以。

参考资料

1.https://blog.csdn.net/hxbunulidehaizhi/article/details/50500645

posted @ 2021-02-20 09:35  deepwzh  阅读(1277)  评论(0编辑  收藏  举报