1. 程式人生 > >hibernate使用Community Server 8.0.11版本MySQL出現的問題

hibernate使用Community Server 8.0.11版本MySQL出現的問題

歡迎大家參觀我的新網站,悅來yuelai.xyz
本篇文章原地址點選這裡

一不小心,電腦重置了,各種軟體都要重新安裝,不過大部分都很順利,但是當我安裝MySQL的時候,遇到了各種各樣的問題,因為使用的是社群版MySQL目前最新的版本,結果就對我以前寫的web專案產生了影響,在此記錄一下:

##mysql安裝過程:

下載的是壓縮包版本的

解壓縮之後,存放路徑如下:

無標題.png

在mysql根目錄下面新建一個my.ini檔案,輸入以下程式碼:

[Client]
port = 3306
[mysqld]
 #設定埠
port = 3306
 # 設定mysql的安裝目錄
basedir=C:\mysql
 # 設定mysql資料庫的資料目錄
datadir=C:\mysql\sqldata
 # 允許最大連線數
max_connections=200
 # 設定服務端字符集
character-set-server=utf8
 # 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
[mysql]
 # 設定mysql客戶端預設字符集
default-character-set=utf8

儲存之後,用管理員身份執行命令列,進入mysql的bin目錄,輸入以下命令,初始化mysql:

mysqld --initialize --user=mysql --console

初始化成功後,系統會在mysql目錄下建立sqldata目錄,並生成初始密碼。將生成的初始密碼記錄下來

輸入以下命令開始安裝mysql:

mysqld --install mysql

Service successfully installed.安裝成功

輸入以下命令啟動mysql:

net start mysql

開始登陸mysql,輸入剛才生成的初始密碼:

mysql -u root -p

這裡寫程式碼片

修改mysql登入密碼,命令如下:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密碼';

到此mysql安裝完畢,可以設定環境變數,操作更方便

MYSQL_HOME設定mysql根目錄

Path設定mysql根目錄下的bin目錄

##修復錯誤

安裝成功之後,用NaviCat連線問題就開始出現了,因為是新版本的mysql,而我的NaviCat是11.x的老版本

提示Client does not support authentication protocol requested by server,新老版本的認證協議不同,要麼更新NaviCat,要麼就和我一樣繼續使用老版的認證方式,方法如下:

開啟命令列登入mysql,執行以下程式碼:

USE mysql;
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘密碼’; 
flush privileges;

再次嘗試連線,就可以連線成功了。

mysql的問題基本解決了,但是Javaweb還是不能用,因為資料庫連線的一些東西需要更改:

第一個是mysql-connector的jar包,我以前用的5.1.26結果連線的時候出現了各種問題,然後更換了更高版本的jar包之後,問題解決了

第二個是資料庫驅動,com.mysql.jdbc.Driver用了這麼久也該換了,新版的mysql驅動是com.mysql.cj.jdbc.Driver

第三個是MySQL的url需要設定useSSL=false&serverTimezone=UTC,如果不設定useSSL=false則需要SSL連線,暫時不需要,所以必須顯式宣告;serverTimezone=UTC設定時區,不然會報錯The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents …

還有一點就是兩者之間的&替換為&,不然又會報錯提示必須以 ‘;’ 分隔符結尾。

到此總算是可以正常使用了,費了好大勁。

題外話:

win10加入了預覽版,提示我版本快過期了需要升級,以前從沒有升級失敗過,就開始升級了,結果升到98%不動了,1個小時沒反應,沒辦法強制關機了,再開啟就出現問題不能使用了,實在沒辦法只好重置了!預覽版謹慎加入,最好不要用工作電腦,唉,為了體驗新功能這就是代價啊!