删除用户
删除用户
mysql> truncate mysql.user;Query OK, 0 rows affected (0.05 sec)mysql> select user,host from mysql.user;Empty set (0.00 sec)
重启mysql服务并登录
[root@db01 ~]# systemctl restart mysqld[root@db01 ~]# mysqlERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)#登录错误
恢复用户
当登录不上去首先停掉正在运行的数据库
[root@db01 ~]# systemctl stop mysqld[root@db01 ~]# ps -ef |grep mysqldroot 7905 7664 0 03:22 pts/1 00:00:00 grep --color=auto mysqld
跳过授权表,跳过网络启动数据库
[root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking & -----跳过授权表,跳过网络[1] 7908[root@db01 ~]# 191101 03:26:40 mysqld_safe Logging to '/application/mysql/data/db01.err'.191101 03:26:40 mysqld_safe Starting mysqld daemon with databases from /application/mysql/data
连接数据库
[root@db01 ~]# mysqlWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.6.44 Source distributionCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
刷新授权表
mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)
创建 root 超级用户并退出
mysql> grant all on *.* to root@'localhost' identified by '123' with grant option;Query OK, 0 rows affected (0.00 sec)mysql> \qBye
停止mysql服务
[root@db01 ~]# mysqladmin -uroot -p123 shutdownWarning: Using a password on the command line interface can be insecure.191101 03:58:41 mysqld_safe mysqld from pid file /application/mysql/data/db01.pid ended[1]+ Done mysqld_safe --skip-grant-tables --skip-networking[root@db01 ~]# ps -ef |grep mysqldroot 8078 7664 0 03:59 pts/1 00:00:00 grep --color=auto mysqld
启动数据库服务
[root@db01 ~]# systemctl start mysqld[root@db01 ~]# ps -ef |grep mysqldmysql 8085 1 8 03:59 ? 00:00:00 /application/mysql/bin/mysqld --defaults-file=/etc/my.cnfroot 8108 7664 0 03:59 pts/1 00:00:00 grep --color=auto mysqld
连接数据库
[root@db01 ~]# mysql -uroot -p123Warning: Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.6.44 Source distributionCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
查看创建的用户的权限
mysql> select * from mysql.user\G*************************** 1. row *************************** Host: localhost User: root Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 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 -------------------------如果是N 就是不是超级用户权限 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: YCreate_tablespace_priv: Y ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 plugin: mysql_native_password authentication_string: password_expired: N1 row in set (0.00 sec)