mysql 允许账号 drop 自己,如果 root 账户把自己 drop 了。
有两种方式
1, 以安全模式启动
以安全模式启动 MYSQL,跳过权限验证
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
或者
修改 my.cnf 并重启 (本质上和上面方法一样,都是跳过权限验证,更麻烦)
sudo vim /etc/my.cnf
[mysqld]
skip-grant-tables
port = 3306
2, 然后登陆
mysql -h127.0.0.1
执行
INSERT INTO mysql.user
SET user = 'root',
host = '%',
authentication_string =Password('123456'),
Select_priv = 'y',
Insert_priv = 'y',
Update_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',
Alter_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',
Event_priv = 'y',
Trigger_priv = 'y',
Create_tablespace_priv = 'y',
ssl_cipher = '',
x509_issuer = '',
x509_subject = '';