我不小心删除了在OS X上运行的MySQL本地安装上的root用户。没有创建其他用户可恢复到MySQL。任何人都知道如何在mysql中还原root用户。
答案 0 :(得分:4)
我有个快速而肮脏的方式
找一个拥有SysAdmin权限的人,然后执行以下操作:
在[mysqld]部分下的“ /etc/mysql/mysql.conf.d/mysqld.cnf
”中添加“ skip-grant-tables”
重启mysql
输入没有密码的mysql,然后按Enter键
运行此:
DELETE FROM mysql.user
WHERE user = 'root'
AND host = 'localhost';
INSERT INTO `user` (
`Host`, `User`, `Select_priv`, `Insert_priv`,
`Update_priv`, `Delete_priv`, `Create_priv`,
`Drop_priv`, `Reload_priv`, `Shutdown_priv`,
`Process_priv`, `File_priv`, `Grant_priv`,
`References_priv`, `Index_priv`, `Alter_priv`,
`Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`,
`Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`,
`Repl_client_priv`, `Create_view_priv`, `Show_view_priv`,
`Create_routine_priv`, `Alter_routine_priv`,
`Create_user_priv`, `Event_priv`, `Trigger_priv`,
`Create_tablespace_priv`, `ssl_type`, `ssl_cipher`,
`x509_issuer`, `x509_subject`, `max_questions`,
`max_updates`, `max_connections`, `max_user_connections`,
`plugin`, `authentication_string`, `password_expired`,
`password_last_changed`, `password_lifetime`, `account_locked`
) VALUES (
'localhost', 'root', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '',
0, 0, 0, 0, 'mysql_native_password',
'*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B', 'N',
'2018-07-20 14:47:59', NULL, 'N'
);
从mysql退出
从[mysqld]部分下的/etc/mysql/mysql.conf.d/mysqld.cnf
删除'skip-grant-tables'
重启mysql
那应该是全部!