问题描述
这段时间使用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