mysql数据库连接报错The last packet sent successfully to the server was 0 milliseconds ago. The drive
多数据源场景,其中一个是mysql库,数据源连接报错 数据包发送了,但是未接到回执。
如果是首次连接报错,考虑是网络问题导致数据不可达。依次排查以下几个方面:
(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)
如果是连接一段时间之后报错,考虑8h断联机制,my.ini添加mysql系统配置参数,或者定时做简单查询进行保活。
开启远程连接参考出处:mysql 远程登录修改配置 - 三冬三夏 - 博客园
来源地址:https://blog.csdn.net/flyf000/article/details/126365343
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341