• 误删除 mySQL 用户解决办法


    误删除用户解决办法


    删除用户


    删除用户

    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 ~]# mysql
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    #登录错误

    恢复用户


    当登录不上去首先停掉正在运行的数据库

    [root@db01 ~]# systemctl stop mysqld
    [root@db01 ~]# ps -ef |grep mysqld
    root       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 ~]# mysql
    Welcome to the MySQL monitor. Commands end with ; or g.
    Your MySQL connection id is 1
    Server version: 5.6.44 Source distribution

    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    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> q
    Bye

    停止mysql服务

    [root@db01 ~]# mysqladmin -uroot -p123 shutdown
    Warning: 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 mysqld
    root       8078   7664  0 03:59 pts/1    00:00:00 grep --color=auto mysqld

    启动数据库服务

    [root@db01 ~]# systemctl start mysqld
    [root@db01 ~]# ps -ef |grep mysqld
    mysql      8085      1  8 03:59 ?        00:00:00 /application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    root       8108   7664  0 03:59 pts/1    00:00:00 grep --color=auto mysqld

    连接数据库

    [root@db01 ~]# mysql -uroot -p123
    Warning: 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 1
    Server version: 5.6.44 Source distribution

    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

    mysql>

    查看创建的用户的权限

    mysql> select * from mysql.userG
    *************************** 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: Y
    Create_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: N
    1 row in set (0.00 sec)

    注意:以上只能在存在数据的时候使用,如果没有数据直接初始化就可以。

  • 相关阅读:
    委托~~~~~~~~~~~~~
    Lambda表达式的前世今生~~~~~~
    数据库/MySQL的安装
    flask 源码专题(十一):LocalStack和Local对象实现栈的管理
    python面试题:redis数据库
    python面试题七: mysql数据库
    wtforms: remove ' fill out this field'
    python面试题六: 剑指offer
    python面试题五:Python 编程
    python面试题四:Python web框架
  • 原文地址:https://www.cnblogs.com/daiyacheng1991/p/11779252.html
Copyright © 2020-2023  润新知