nacos 2.x 版本无法连接MySQL数据库的问题
nacos 2.x 版本无法连接MySQL数据库的问题
前提铺垫
- MySQL:mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
- Nacos:nacos-server-2.4.0.1.tar.gz
- Linux: CentOS 7
- java:jdk-8u421-linux-x64.tar.gz
- nacos服务器地址:10.17.1.4,10.17.1.5,10.17.1.6
- 数据库服务器地址:10.17.1.3
tips:服务器之间互相ping过,都能ping通,不存在网络不通的问题
集群的application.properties配置好后,启动startup.sh,一直报错MySQL连接不上
Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:111)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:98)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:90)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:64)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:74)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:895)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:820)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:446)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:239)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:188)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at com.alibaba.nacos.persistence.utils.ConnectionCheckUtil.checkDataSourceConnection(ConnectionCheckUtil.java:40)
... 124 common frames omitted
第一步:验证MySQL是不是在各个nacos服务器上都可以访问到,如果可以,那么证明是配置问题
第二步:查看application.properties配置
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://10.17.1.3:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=thxjt@123
可以看到连接配置中connectTimeout=1000和socketTimeout=3000可能是超时时间设置得太短了,所以失败,改为如下配置
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://10.17.1.3:3306/nacos?characterEncoding=utf8&connectTimeout=5000&socketTimeout=6000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=thxjt@123
再次启动nacos集群,成功启动。另外说个题外话:在处理这个问题的时候,我发现网上很多帖子都是说将application.properties文件名改为bootstrap.properties,或者把db.user.0配置改为db.user,都解决不了问题,最后通过网络抓包还是找到问题了,就是服务器返回耗时长。最后说一句:配置文件中的配置名尽量用官方的,不要瞎改配置名!
本文来自博客园,作者:勤匠,转载请注明原文链接:https://www.cnblogs.com/JarryShu/articles/18356062

浙公网安备 33010602011771号