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用户是不允许远程连接访问数据库的,只能在本地访问。

配置root用户开放远程登陆

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的系统权限相关表