您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何解決mysql登錄錯誤'Access denied for user 'root'@'localhost'問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
首先是不知道怎么忽然mysql用命令行,workbench都登錄不了,都提示'Access denied for user 'root'@'localhost'。
數據庫卸載重裝了幾次都不行。好像感覺數據清理不干凈。解決的過程遇到的坑,這里記錄分享下。
有效的操作記錄下:
1、首先是跳過權限登錄mysql,查看user表,
停止mysql服務~$ sudo service mysql stop
以安全模式啟動MySQL~$ sudo mysqld_safe --skip-grant-tables &
注意:
可能提示mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exist
解決方法:(筆者嘗試發現必須加sudo)
sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld
再次執行上面安全模式啟動mysql ~$ sudo mysqld_safe --skip-grant-tables &
這次提示語句顯示了,mysqld_safe Staring mysqld deamon with database from /var/lib/mysql
這次登錄可以不用密碼:mysql -u root 回車就登錄了
sql語句查詢mysql.user表的情況,如下:
加圖片(以后補)
還有人提議如下這么做,沒嘗試
Open & Edit /etc/my.cnf or /etc/mysql/my.cnf, depending on your distro.
Add skip-grant-tables under [mysqld]
2、發現user的plugin為socket_plugin,改為mysql_native_password
修改root的plugin權限:
update mysql.user set authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' where user='root'; flush privileges; quit;
(注意這里修改一定要正確,免得跟筆者一樣,粗心的把plugin修改的內容少些了一個字母,又有下面的折騰)
3、user表還有其他用戶,root不能登錄,用其他的用戶登錄也行啊。查詢了發現一下有效操作:
在mysql的安裝目錄,一般在 /etc/mysql里面有個debain.cnf文件,里面有user,password,用這個用了登錄,密碼最后復制,然后就又可以修改user表root的plugin,操作同上。
重啟mysql服務, sudo service mysql restart;
用root用戶就可以登錄。
關于“如何解決mysql登錄錯誤'Access denied for user 'root'@'localhost'問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。