但行好事
莫论前程❤

MySql数据库误删root用户

查看当前用户
select current_user()

版本号: Mysql_5.7.21

Ubuntu 16.4

 在Linux中有时安装Mysql会出现没有root用户的状况,或者说root账户被从mysql.user表中误删除,这样就导致很多权限无法控制。

1、 修改/etc/mysql/mysql.conf.d/mysqld.cnf文件,添加skip-grant-tables

 [mysqld]

              datadir=/var/lib/mysql
              socket=/var/lib/mysql/mysql.sock
              user=mysql
              # Disabling symbolic-links is recommended to prevent assorted security risks
              symbolic-links=0

              skip-grant-tables

2、重启

service mysql restart 

3、免密登录

mysql> mysql
mysql> use mysql;
mysql> insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject='';
mysql> 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';
mysql> quit;

4、 使用下列命令重新登陆, 设置root的密码

mysql> mysql -u root
mysql> update mysql.user set authentication_string=password('yourrootpasswd') where user='root';
# %表示设置远程机器可访问mysql。
mysql> update user set host = '%' where user = 'root';
# mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。
mysql> flush privileges;
mysql> quit;

5、修改/etc/mysql/mysql.conf.d/mysqld.cnf文件,将skip-grant-tables去掉,然后重启mysql

6、重启

service mysql restart
赞(0) 打赏
未经允许不得转载:刘鹏博客 » MySql数据库误删root用户
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏