1. 程式人生 > >tomcat連線mysql8的那些坑爹的報錯

tomcat連線mysql8的那些坑爹的報錯

1 新建mysql的user後但是navicat連線顯示密碼錯誤

通過mysql shell新建,預設密碼模式-standard提交後後自動變成caching_sha2_password,

坑爹的不知道密碼變成什麼了

解決方式:

     #修改加密規則  
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 
    #更新密碼(mysql_native_password模式)    
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';

2 jar包mysql-connector-java

原來專案是mysql5版本,現在換了mysql8,tomcat的lib裡的mysql-connector-java-5也需要同步更新成:

4 mysql 資料庫 修改預設時區

set global time_zone = '+8:00';設定時區更改為東八區

flush privileges; 重新整理許可權

然後退出後重新登入就可以了,顯示當前時間和我現在的時間一致了。

5連線資料庫:ERROR: The server time zone value '�й�׼' is unrecognized or represents more than one t

操作可行

在資料庫驅動的url後加上serverTimezone=UTC引數

寫程式碼的時候要注意,如果該引數是‘?’後的第一個,即

<property name="jdbcUrl"> jdbc:mysql://localhost:3306/exam?serverTimezone=UTC </property>

是沒有問題的,但如果不是第一個,即

<property name="jdbcUrl"> jdbc:mysql://localhost:3306/exam?characterEncoding=utf8&serverTimezone=UTC </property>

這種寫法是會報錯的,會提示The reference to entity “serverTimezone” must end with the ‘;’ delimiter.  執行後控制檯也會出現  對實體 “serverTimezone” 的引用必須以 ‘;’ 分隔符結尾。  的錯誤提示。  將程式碼改為

<property name="jdbcUrl"> jdbc:mysql://localhost:3306/exam?characterEncoding=utf8&amp;serverTimezone=UTC </property>

即可。在xml的配置檔案中 ;要用 &amp; 代替。

以上就是連線資料庫:ERROR: The server time zone value '�й�׼' is unrecognized or represents more than one time zone的全文介紹,希望對您學習和使用mysql有所幫助.