MySQL 8.0 誤刪了root用戶怎么辦
修改配置文件
修改配置文件,讓其可以無賬號登錄
默認的文件為: /etc/my.cnf
添加:skip-grant-tables
重啟服務
service mysql restart
添加用戶信息
use mysql;
添加用戶
insert into user(User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('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;
去掉配置文件的內容,重啟服務
重新登錄,使用root賬號,設置密碼。
mysql
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by 'root@12345';
授權遠程連接
默認情況下,mysql用戶是不允許遠程連接訪問數據庫的,只能在本地訪問。
mysql> SHOW DATABASES;
mysql> USE mysql;
mysql> SELECT 'host' FROM user WHERE user='root'; #查看user表的host值
mysql> UPDATE user SET host = '%' WHERE user ='root; #修改host值
mysql> flush privileges; #刷新MySQL的系統權限相關表