1、報錯信息
client does not support authentication protocol requested by server;consider upgrading MySQL client
2、分析
根據報錯的字面意思:客戶端不支持服務器請求的身份驗證協議,可考慮升級MySQL客戶端。
問題就出在用戶密碼上.
經查詢:MySQL8.0.4以前的版本和MySQL8.0.4及以后的版本,密碼認證插件有所改變,之前使用的是“mysql_native_password”,8.0.4及以后使用的是“caching_sha2_password”,
所以在修改密碼的語句上,也有所不同,以前修改密碼語句:
SET PASSWORD=PASSWORD('newpassword')
現在修改語句:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
3、解決方法
可以把密碼認證插件改為“mysql_native_password”,同時修改密碼。
-- 黑窗口登錄mysql mysql -u root -p -- 查看用戶相關信息: /* user: 用戶名 host:允許連接的主機,%表示所有主機都可以連接 plugin:密碼認證插件 authentication_string :密碼,加密處理了的 */ select host,user,plugin,authentication_string from mysql.user; -- 修改密碼認證插件為mysql_native_password,同時修改密碼:我這里修改密碼為Zxit@2018 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Zxit@2018';
修改前的:
修改后的:
4、驗證
再次用Navicat連接測試,顯示成功