1. 程式人生 > >mysql-8.0.12 Could not create connection to database server

mysql-8.0.12 Could not create connection to database server

Could not create connection to database server - java mysql connector

一、mysql授權

java報錯: null,  message from server: "Host 'windows10.microdone.cn' is not allowed to connect to this MySQL server"

資料庫報錯: You are not allowed to create a user with GRANT

解決方法:

在mysql的bin目錄下執行:mysql -u root -p密碼 登陸到資料:
執行use mysql;

執行:update user set host=’%’ where user =’root’;

執行重新整理許可權:flush privileges;

可以測試外網連線mysql伺服器。

二、(Mysql8.0)Could not create connection to database server - java mysql connector

問題:我用的mybatis的驅動包(mysql-connector-java-5.1.38-bin)與8.0不符合
最後我把驅動包改為 mysql-connector-java-8.0.11(點選下載)密碼為 igvz 的

最後記得把jdbc.properties的配置改變一下:driver=com.mysql.cj.jdbc.Driver

再重新開啟伺服器就發現可以連線到資料庫了

補充:

可能會遇到接下來的問題 :java.sql.SQLException: The server time zone value(MyBatis時區錯誤)

The server time zone value '???ú±ê×??±??' 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.

url=jdbc:mysql://localhost:3306/person?serverTimezone=UTC&characterEncoding\=utf-8

就在url上面新增上 serverTimezone=UTC 就可以了

之前還出現修改密碼報錯

也許mysql-8.0.12設定密碼和之前不一樣吧
問題解決:

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '111111';
FLUSH PRIVILEGES;

這期間還涉及MySQL的密碼認證外掛是mysql_native_password,而現在使用的是caching_sha2_password。

因為當前有很多資料庫工具和連結包都不支援caching_sha2_password,為了方便,我暫時還是改回了mysql_native_password認證外掛。

在MySQL中執行命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

此次嘗試新版本感覺累覺不愛、之前找一個my.ini檔案找了半天找不到、還有人說在c盤的一個隱藏檔案下、我也去找了找了之後我想想這個是解壓的、不可能去哪裡。最後又有人說新建一個,新建之後啟動都啟動不起來了,不過還是成功解決了