1. 程式人生 > >mysql 8.0.11遇到問題總結

mysql 8.0.11遇到問題總結

1. 使用sqlyog連線mysql報錯,錯誤碼 1251

錯誤場景:
使用sqlyog連線mysql在賬戶名和密碼都正確的情況下總是失敗
但是在windows cmd視窗下用同樣的賬戶名和密碼操作就沒有任何問題
報錯資訊 :
錯誤程式碼 1251
client does not support  authentication protocol requested by server; consider upgrading MySQL client
報錯原因:
mysql8 之前的版本中加密規則是mysql_native_password,
而在mysql8之後,加密規則是caching_sha2_password.
但是當前有很多資料庫工具和連結包都不支援“caching_sha2_password”,
比如說我用的這個版本的sqlyog,
所以,我們需要將加密規則更改為: mysql_native_password。
解決方案:
1. 修改my.ini配置檔案
在mysql8的版本中,解壓後的安裝包不含該檔案,所以我們需要手動建立
舉例 : 我的mysqll安裝在
E:\softWare\bigData\mysql8.0\mysql-8.0.11-winx64這個目錄下
所以,我就要在當前目錄新建my.ini檔案,如下:
E:\softWare\bigData\mysql8.0\mysql-8.0.11-winx64\my.ini

檔案內容如下:

[mysqld]
# 設定3306埠
port=3306
# 設定mysql的安裝目錄
basedir=E:\softWare\bigData\mysql8.0\mysql-8.0.11-winx64
# 設定mysql資料庫的資料的存放目錄
datadir=E:\softWare\bigData\mysql8.0\mysql-8.0.11-winx64\data
# 允許最大連線數
max_connections=200
# 允許連線失敗的次數。這是為了防止有人從該主機試圖攻擊資料庫系統
max_connect_errors=10
# 服務端使用的字符集預設為UTF8
character-set-server=utf8
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
# 預設使用“mysql_native_password”外掛認證
default_authentication_plugin=mysql_native_password
[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8
[client]
# 設定mysql客戶端連線服務端時預設使用的埠
port=3306
default-character-set=utf8

但是我修改了該檔案之後,連線仍然報相同的錯誤,也就是說配置沒有生效.
現在回想起來應該是我更改完配置沒有重啟mysql導致的!

2.在cmd中依次執行以下命令 : 
 ALTER USER '使用者名稱'@'localhost' IDENTIFIED BY '密碼' PASSWORD EXPIRE NEVER;  #修改加密規則
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼'; #更改使用者的密碼
 FLUSH PRIVILEGES; #重新整理

修改完之後,輸入新的使用者名稱密碼進行連線,顯示介面如下:
連線成功!!!


問題得到解決!

2.安裝好mysql8.0.11,啟動時遇到的問題

問題描述:
執行 net start mysql  提示 : 服務名無效 
解決方法:
執行命令:
mysqld --install
後續報錯:
資訊如下:
Install/Remove of the Service Denied
解決方法:
進入到c盤 windows目錄 system32, 找到cmd.exe檔案,右鍵--> 以管理員的身份執行即可
然後在執行 net start mysql 命令, 成功進入到mysql介面!