首先是不知道怎么忽然mysql用命令行,workbench都登錄不了,都提示'Access denied for user 'root'@'localhost'。
數(shù)據(jù)庫(kù)卸載重裝了幾次都不行。好像感覺(jué)數(shù)據(jù)清理不干凈。解決的過(guò)程遇到的坑,這里記錄分享下。
有效的操作記錄下:
1、首先是跳過(guò)權(quán)限登錄mysql,查看user表,
停止mysql服務(wù)~$ sudo service mysql stop
以安全模式啟動(dòng)MySQL~$ sudo mysqld_safe --skip-grant-tables
注意:
可能提示mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exist
解決方法:(筆者嘗試發(fā)現(xiàn)必須加sudo)
sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld
再次執(zhí)行上面安全模式啟動(dòng)mysql ~$ sudo mysqld_safe --skip-grant-tables
這次提示語(yǔ)句顯示了,mysqld_safe Staring mysqld deamon with database from /var/lib/mysql
這次登錄可以不用密碼:mysql -u root 回車就登錄了
sql語(yǔ)句查詢mysql.user表的情況,如下:
加圖片(以后補(bǔ))
還有人提議如下這么做,沒(méi)嘗試
Open Edit /etc/my.cnf or /etc/mysql/my.cnf, depending on your distro.
Add skip-grant-tables under [mysqld]
2、發(fā)現(xiàn)user的plugin為socket_plugin,改為mysql_native_password
修改root的plugin權(quán)限:
update mysql.user set authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' where user='root'; flush privileges; quit;
(注意這里修改一定要正確,免得跟筆者一樣,粗心的把plugin修改的內(nèi)容少些了一個(gè)字母,又有下面的折騰)
3、user表還有其他用戶,root不能登錄,用其他的用戶登錄也行啊。查詢了發(fā)現(xiàn)一下有效操作:
在mysql的安裝目錄,一般在 /etc/mysql里面有個(gè)debain.cnf文件,里面有user,password,用這個(gè)用了登錄,密碼最后復(fù)制,然后就又可以修改user表root的plugin,操作同上。
重啟mysql服務(wù), sudo service mysql restart;
用root用戶就可以登錄。
參考博客:
MySQL ERROR 1698 (28000) 錯(cuò)誤 https://www.jb51.net/article/117566.htm
mysql 查看當(dāng)前使用的配置文件my.cnf的方法 https://www.jb51.net/article/110395.htm
linux -- Ubuntu查看修改mysql的登錄名和密碼、安裝phpmyadmin https://www.jb51.net/article/174925.htm
總結(jié)
以上所述是小編給大家介紹的解決mysql登錄錯(cuò)誤:''Access denied for user ''root''@''localhost'',希望對(duì)大家有所幫助!
標(biāo)簽:煙臺(tái) 來(lái)賓 陽(yáng)江 河北 黃石 鞍山 赤峰 果洛
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《解決mysql登錄錯(cuò)誤:'Access denied for user 'root'@'localhost'》,本文關(guān)鍵詞 解決,mysql,登錄,錯(cuò)誤,amp,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。