mysql数据库连接报错The last packet sent successfully to the server was 0 milliseconds ago. The drive
mysql数据库连接报错The last packet sent successfully to the server was 0 milliseconds ago. The drive
多数据源场景,其中一个是mysql库,数据源连接报错 数据包发送了,但是未接到回执。
1、如果是首次连接报错,考虑是网络问题导致数据不可达。依次排查以下几个方面:
(1)网络是否连通
(2)防火墙是否限制3306端口
(3)mysql是否开放远程连接权限
(4)如果存在内网那么端口有没有被映射成别的
其中,mysql远程连接未开启的表现为:jdbc:mysql://ip:3306/中,ip填localhost可连通,换成任意ip无法连通,解决办法如下:
打开MySQL CommandLine Client,通过命令: mysql -u root -p进行登录
(1)改表法
use mysql;
update user set host = '%' where user = 'root';
这样在远端就可以通过root用户访问Mysql.
注:root的位置要使用数据库用户名,一般默认是root
(2)授权法
将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议仅在开发时设为%。 update user set host = ’%’ where user = ’root’;
将权限改为ALL PRIVILEGES
mysql> use mysql; Database changed mysql> grant all privileges on *.* to root@'%' identified by "password"; Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
mysql> select host,user,password from user; +--------------+------+-------------------------------------------+ | host | user | password | +--------------+------+-------------------------------------------+ | localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | +--------------+------+-------------------------------------------+ 3 rows in set (0.00 sec)
2、如果是连接一段时间之后报错,考虑8h断联机制,my.ini添加mysql系统配置参数,或者定时做简单查询进行保活。
开启远程连接参考出处:mysql 远程登录修改配置 - 三冬三夏 - 博客园