多数据源场景,其中一个是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 远程登录修改配置 - 三冬三夏 - 博客园

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐