Mysql如何解決1251 client does not support問題
一、客戶端使用navicat for mysql
本地安裝了mysql 8.0。
但是在鏈接的時候提示:
主要原因是mysql服務器要求的認證插件版本與客戶端不一致造成的。
打開mysql命令行輸入如下命令查看,系統(tǒng)用戶對應的認證插件:
可以看到root用戶使用的plugin是caching_sha2_password,mysql官方網站有如下說明:
意思是說caching_sha2_password是8.0默認的認證插件,必須使用支持此插件的客戶端版本。
plugin的作用之一就是處理后的密碼格式和長度是不一樣的,類似于使用MD5加密和使用base64加密一樣對于同一個密碼處理后的格式是不一樣的。
二、解決
1.查看用戶信息
select host,user,plugin,authentication_string from mysql.user;
備注:host為 % 表示不限制ip localhost表示本機使用 plugin非mysql_native_password 則需要修改密碼
2.修改用戶密碼(最好直接復制粘貼,手敲可能會報錯)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';?
更新user為root,host為% 的密碼為123456
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
更新user為root,host為localhost 的密碼為123456
修改前:
修改后:
刷新一下。
flush privileges;刷新一下就OK了,可以去連接了
我不希望更新本地的客戶端版本,想直接使用原來的環(huán)境來鏈接。
解決方法:
是將root的plugin改成mysql_native_password。
相當于降了一級。
mysql官方網站提供了從mysql_old_password升級到mysql_native_password,我們可以仿照這個。
官方原文如下:
這里改成:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
這行代碼有兩層含義,
第一:修改root的密碼為'root',摒棄原來的舊密碼。
第二:使用mysql_native_password對新密碼進行編碼。
三、成功
修改完成后再用客戶端登陸成功:
補充:
如果在修改插件的時候出現(xiàn)錯誤,可現(xiàn)將插件改為 mysql_old_password,然后再升級成mysql_native_password
方法:
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Mysql row number()排序函數(shù)的用法和注意
這篇文章主要介紹了Mysql row number()排序函數(shù)的用法和注意 的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07MyEclipse連接MySQL數(shù)據庫報錯解決辦法
我們現(xiàn)在一般網站都是利用的MySQL數(shù)據庫搭建網站的,但是在網上看到很多網友吐槽數(shù)據庫連接不上的問題,現(xiàn)在我就結合相關資料向提出一些我個人的見解,希望對大家解決問題有幫助2014-01-01