tomcat連線mysql8的那些坑爹的報錯
阿新 • • 發佈:2018-12-10
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&serverTimezone=UTC </property>
即可。在xml的配置檔案中 ;要用 &
代替。
以上就是連線資料庫:ERROR: The server time zone value '�й�' is unrecognized or represents more than one time zone的全文介紹,希望對您學習和使用mysql有所幫助.