Apollo配置中心常見報錯
環境:
主機名 | IP地址 | 角色 |
---|---|---|
cka-m2 | 192.168.199.11 | config、admin、portal |
cka-n1 | 192.168.199.12 | mysqlDB |
報錯一:數據庫連接被拒絕
啟動configservice組件時,啟動失敗,查看日志:(連接數據庫被拒絕)
從cka-m2本地測試:
從cka-n1數據庫本地測試:
判斷可能是MySQL的root用戶禁止遠程連接,查看mysql庫的user表:
果然,將root設置為可以遠程連接即可,或新創建一個用戶並設為可以遠程連接:
報錯二:數據庫Timezone未設置
2020-08-21 11:35:28.008 ERROR 4743 --- [localhost-startStop-1] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.
java.sql.SQLException: The server time zone value 'EDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:123)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:534)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
在對應組件的properties里面加"&serverTimezone=GMT"參數即可
# DataSource
spring.datasource.url = jdbc:mysql://192.168.199.12:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=GMT
spring.datasource.username = root
spring.datasource.password = 123
或更改MySQL的Timezone
vim /etc/my.cnf
在[mysqld]下添加:
default-time_zone = '+8:00'
systemctl restart mysqld