原文链接
最近用Docer拉起了一个MySql 数据库容器和一个java程序容器,并从java程序中使用root用户来链接MySql, 但是发现java程序一直在重启,使用docker logs
命令查看java容器的日志发现后台一直报下面的jdbc的异常
2022-04-09 06:49:39.425 INFO 1 — [main] com.zaxxer.hikari.HikariDataSource : HikariCP - Starting…
2022-04-09 06:49:43.581 ERROR 1 — [main] com.zaxxer.hikari.pool.HikariPool : HikariCP - Exception during pool initialization.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
首先进入容器看了下mysql
配置如下, 已经加了wait_timeout=86400
这个配置,但是没有用还是报错。
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
wait_timeout=86400
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
最后发现是root用户没有远程链接的权限,只要授权就好了。
use mysql;
grant all privileges on *.* to root@'%' identified by "yourmsqlpwd";