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個小時沒反應,沒辦法強制關機了,再開啟就出現問題不能使用了,實在沒辦法只好重置了!預覽版謹慎加入,最好不要用工作電腦,唉,為了體驗新功能這就是代價啊!