(2020最新)CentOS7 解決登錄MySQL後無mysql系統表問題

前言:

今天安裝了MySQL,本來可以避免這個問題的,但是由於我的一時疏忽,整出了這個錯誤。那就解決唄!!!

錯誤起因:

我是按照這篇博客裝的:https://blog.csdn.net/qq_43437122/article/details/103551878

本來初次登錄時不需要密碼的,但是我撒呼呼的給弄錯了,我就以爲需要密碼但是我不知道,我就去百度如何重置密碼。結果是

那篇博客讓修改配置文件,然後執行update user set password = ‘123456’ where user =“root” 命令來更新密碼,其實這樣

寫是錯誤的,然後就導致了我這個錯誤。

錯誤解決

網上都是說root權限的錯誤,但是我試了之後沒用,依然報這個錯誤:access denied for user ‘’@‘localhost’ to database
‘database_name’

此時可能你輸入"mysql" “mysql -u root” “mysql -u root -p” 等等都能進入mysql,但是就是沒有mysql表,因爲這時存在一個“空用
戶”。“空用戶”即是user列爲空,它可以匹配一切用戶名,所以此時你以任何方式登錄都行,但是登錄後的權限不夠,所以就沒有

mysql等系統表,解決方式如下:

1. 關閉mysql服務
2. 忽略權限登錄

2.1 執行命令:

mysqld_safe --skip-grant-tables

執行後會顯示:daemon from …啥的信息,再打開一個新窗口

2.2 新打開一個窗口,並執行命令:

mysql -u root
3. 執行以下命令:
use mysql
select * from user where user='' //如果有數據,那麼你的問題基本就可以確定了
delete from user where user='';
flush privileges;  //重載權限表

最後那個重載權限命令一定別忘了執行。。。

4. 重啓服務

如果重啓MySQL服務失敗的話,那就重啓下機器就行了。再進入mysql你會返現一切正常。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章