在我們使用寶塔面板的過程中,有可能遇到過這種情況,新增數據庫時出現數據庫管理密碼錯誤這個問題,我在找問題的過程中發現了一個不太常見的問題,那就是root用戶丟失了。
查看root用戶是否丟失可以在MySQL里面查看,
use mysql; select user,host from user;
如果user表里面沒有root用戶,則root用戶已經丟失了
我們可以在登錄MySQL的時候,用root用戶登錄,會發現登錄不上,這時候我們可以先跳過登錄步驟,直接進去數據庫,具體做法是:
1、找到一個名為my.cnf的配置文件,一般存放於/etc下
vim /etc/my.cnf
在【mysqld】下面添加一個跳過登錄的權限
skip-grand-tables
然后重啟MySQL服務
systemctl restart mysqld
重啟之后在終端直接輸入mysql
這時候就可以直接進去MySQL了,然后可以手動添加root用戶
insert into user(User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('root','','','','');
為root用戶添加權限
update user set Host='localhost',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';commit;
注意,如果我們的數據庫要可以被外界訪問,要把Host='localhost'改層Host='%'
這時候數據庫里面已經有root用戶了,密碼還沒有設置,在設置密碼之前,把一開始添加的skip-grand-tables 注釋掉,重啟服務
service mysql restart
重新登錄
mysql use mysql; alter user 'root'@'localhost' identified with mysql_native_password by 'root@12345';
by后面設置為自己的密碼
然后刷新
flush privileges; 
        大功造成!
