测试环境中想着要配置root的远程登录,就把localhost删除了,然后还刷新了权限,一退出,我mysqlroot就不能用了,wcao,忍不住想爆粗口,那就只能去想办法恢复呗。
第一步
关闭mysql服务
systemctl stop mysql.service
第二步
开启免验证登录,进入安全模式
mysqld_safe --skip-grant-tables --skip-networking &
第三步
进入mysql系统
mysql -u root
第四步
创建一个root用户
INSERT INTO user SET User='root',Host='localhost',ssl_cipher='',x509_issuer='',x509_subject='';
新版本mysql的password字段有更改。
update mysql.user set authentication_string=password('yourpassword') where User='root'
老版本则
update user set password=password("654321") where user="root";
第五步
赋予权限,刷新权限
use mysql;
update user set 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' and Host='localhost';
flush privileges;
第六步
杀掉安全模式进程,重启mysql,然后就能用root登录了!