【MySQL】mysql root密码忘记怎么办?
admin
2023-05-03 23:00:55
0

MySQL忘记密码了怎么解决

笔者曾经有一次误删了mysqlroot用户,怎么办?

之前的解决方式是通过忽略授权表的方式重启mysql然后插入相关数据解决该问题的,但是这种方式需要重启mysql,会影响现有业务,那么有没有其他方式可以不重启MySQL就解决呢?

因为mysql的user表示MyISAM引擎的,因此我们可以通过修改对应的文件来解决这个问题。下面是本人在测试环境的一次演练,仅供参考。

一、查看现有用户
04:18:34 root@localhost [mysql]>select user,host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
3 rows in set (0,00 sec)
二、删除本地root用户
04:18:59 root@localhost [mysql]>drop user root@'localhost';
三、再次查看用户
04:20:02 root@localhost [mysql]>select user,host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
+---------------+-----------+

现在我们开始恢复用户数据

四、移动user表相关文件
[root@localhost mysql]# cp user.* /vagrant/mysql/3307/data/test/
五、登录另一个实例并查看user表
04:23:53 root@localhost [(none)]>use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
04:23:56 root@localhost [test]>show tables;
+----------------+
| Tables_in_test |
+----------------+
| user           |
+----------------+
1 row in set (0,00 sec)

04:23:58 root@localhost [test]>select * from user\G
*************************** 1. row ***************************
                  Host: localhost
                  User: mysql.session
           Select_priv: N
           Insert_priv: N
           Update_priv: N
           Delete_priv: N
           Create_priv: N
             Drop_priv: N
           Reload_priv: N
         Shutdown_priv: N
          Process_priv: N
             File_priv: N
            Grant_priv: N
       References_priv: N
            Index_priv: N
            Alter_priv: N
          Show_db_priv: N
            Super_priv: Y
 Create_tmp_table_priv: N
      Lock_tables_priv: N
          Execute_priv: N
       Repl_slave_priv: N
      Repl_client_priv: N
      Create_view_priv: N
        Show_view_priv: N
   Create_routine_priv: N
    Alter_routine_priv: N
      Create_user_priv: N
            Event_priv: N
          Trigger_priv: N
Create_tablespace_priv: N
              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: *C7A1AAE2D250AFD864050FAF4935EF6F5D185A92
      password_expired: N
 password_last_changed: 2018-02-23 13:19:12
     password_lifetime: NULL
        account_locked: Y
*************************** 2. row ***************************
                  Host: localhost
                  User: mysql.sys
           Select_priv: N
           Insert_priv: N
           Update_priv: N
           Delete_priv: N
           Create_priv: N
             Drop_priv: N
           Reload_priv: N
         Shutdown_priv: N
          Process_priv: N
             File_priv: N
            Grant_priv: N
       References_priv: N
            Index_priv: N
            Alter_priv: N
          Show_db_priv: N
            Super_priv: N
 Create_tmp_table_priv: N
      Lock_tables_priv: N
          Execute_priv: N
       Repl_slave_priv: N
      Repl_client_priv: N
      Create_view_priv: N
        Show_view_priv: N
   Create_routine_priv: N
    Alter_routine_priv: N
      Create_user_priv: N
            Event_priv: N
          Trigger_priv: N
Create_tablespace_priv: N
              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: *C7A1AAE2D250AFD864050FAF4935EF6F5D185A92
      password_expired: N
 password_last_changed: 2018-02-23 13:19:26
     password_lifetime: NULL
        account_locked: Y
2 rows in set (0,00 sec)
六、把本实例的root用户插入刚刚移动过来的user表
04:25:03 root@localhost [test]>insert into user select * from mysql.user where user = 'root' and host ='localhost';
Query OK, 1 row affected (0,02 sec)
Records: 1  Duplicates: 0  Warnings: 0
七、再次移动user文件到原先的位置
[root@localhost test]# cp user.* /vagrant/mysql/3306/data/mysql
八、重新加载配置到内存
[root@localhost test]# kill -HUP `pidof mysqld`

通过该步mysql并不会重启,对应用不会有影响

九、重新登录,OK
[root@localhost test]# mysql -uroot -p -S /tmp/mysql3306.sock
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.21-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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.

04:30:57 root@localhost [(none)]>

相关内容

热门资讯

豪华邮轮病毒,横跨三大洲始末 5月11日,泛海探险公司确认,隶属于该公司的“洪迪厄斯”号邮轮抵达西班牙特内里费岛后,全部87名乘客...
苏泊尔球釜电饭煲不通电是什么原... 1、有可能是温度保险管出现了问题,每个电饭煲都有温度保险管,而不是家常用的保险丝,如果保险管出现了问...
九阳铁釜电饭煲不通电原因 1、可能是面板烧了。2、控制电路没有工作,先检查控制电源是否正常。电饭煲的面板显示器线路接触不良,找...
空调线控器出现“黑... 珠海总部对于退回的多联机线控器黑屏“故障”,部分是由于不清楚线控器的灯光功能,误触发线控器关闭了灯光...
长虹柜机温度传感器是多少K 每一个空调传感器的传感温度都会对应着不同的空调工作型号和参数,常见的有5K,10K和15K,当然在不...
测电笔测不出的漏电 1、如果漏电的电压比较低的话有时候测电笔就测试不出来的。2、有时候测电笔在出厂的时候没有检测好,就有...
“拖延毫无出路”:美智库疾呼出... 【文/观察者网 潘昱辰 编辑/高莘】“如果没有国家战略扶持,美国汽车产量将持续下滑,直接影响美国国家...
凤凰记者拍到空军一号飞抵首都机... “哪儿呢?”“来了,这!这!这!”5月13日晚,特朗普专机空军一号抵达北京首都机场 ,凤凰卫视记者拍...
黄仁勋最后时刻登上“空军一号”... 美国当地时间5月12日,美国总统特朗普启程访华。途中,“空军一号”于阿拉斯加加油停靠时,英伟达公司总...
美财长贝森特专机先期抵达北京 13日下午,在特朗普抵达前,美国财长贝森特的专机先期飞抵北京,凤凰卫视记者拍摄到了专机降落前的画面。