遇到这个问题第二次了,特此记录一下。 问题出现背景:在云服务器上使用Mysql数据库,写程序的时候连接得好好的,能各种查询数据,过了一段时间发现突然连不上了,报错: W/System.err: com.mysql.jdbc.exceptio
遇到这个问题第二次了,特此记录一下。
问题出现背景:在云服务器上使用Mysql数据库,写程序的时候连接得好好的,能各种查询数据,过了一段时间发现突然连不上了,报错:
W/System.err: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
W/System.err:
W/System.err: The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
解决方案:
首先需要去确认服务器上mysql服务是否还在运行:
输入命令 mysql -uroot -p,然后输入密码登录mysql
尝试登陆mysql,发现连接不上,并显示缺失/tmp/mysql.sock文件
2.使用命令 service mysqld status 查看mysql服务状态:
使用命令 systemctl start mysqld 启动mysql服务
结果发现重启后登录还是报一样的错,显示/tmp/mysql.sock不存在
查看/etc/my.cnf文件,这个是mysql的配置文件
显示Socket文件存放路径是/tmp/mysql.sock,然而去文件目录发现该文件真的不存在。
重启mysql服务,命令:/etc/init.d/mysqld restart
重新登录mysql,登录成功
7.登入数据库,发现数据全部没了,只剩下系统的数据库,并且会发现root用户没有权限创建或删除数据库。
我们需要去修改/etc/my.cnf配置文件,在[mysqld]下面加上这句话 skip-grant-tables,然后重启 /etc/init.d/mysqld restart,这样我们就能免密登入mysql并修改root用户的权限了(后面改完后记得把这行话去掉),
9.修改root用户的权限
登录mysql后,首先刷新用户权限: flush privileges;
然后执行授权语句,代表来自所有域名的root用户拥有对所有表的所有权限:
grant all privileges on *.* to 'root'@'%' identified by 'your_root_password' with grant option;
然后再刷新权限:flush privileges;
然后我们就可以对数据库进行操作了,用备份数据恢复我们的数据库,
cd进入到sql备份文件所在目录
使用命令:mysql -u root -p your_database_name < your_backup_file.sql(文件名不要包含-)将备份文件导入到我们的数据库
做完这一步我们就可以重新连上我们原来的数据库了。
来源地址:https://blog.csdn.net/m0_53917001/article/details/127483063
--结束END--
本文标题: 连接服务器数据库出现问题:The driver has not received any packets from the server.(暴力解决,会导致数据丢失,因此需要有备份,慎用!!!)
本文链接: https://lsjlt.com/news/400660.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0