【MySQL】mysql root密碼忘記怎麼辦?

來源:互聯網
上載者:User

標籤:資料庫營運

MySQL忘記密碼了怎麼解決

筆者曾經有一次誤刪了mysqlroot使用者,怎麼辦?

之前的解決方式是通過忽略授權表的方式重啟mysql然後插入相關資料解決該問題的,但是這種方式需要重啟mysql,會影響現有業務,那麼有沒有其他方式可以不重啟MySQL就解決呢?

因為mysql的user表示MyISAM引擎的,因此我們可以通過修改對應的檔案來解決這個問題。下面是本人在測試環境的一次演練,僅供參考。

一、查看現有使用者
04:18:34 [email protected] [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 [email protected] [mysql]>drop user [email protected]‘localhost‘;
三、再次查看使用者
04:20:02 [email protected] [mysql]>select user,host from user;+---------------+-----------+| user          | host      |+---------------+-----------+| mysql.session | localhost || mysql.sys     | localhost |+---------------+-----------+

現在我們開始恢複使用者資料

四、移動user表相關檔案
[[email protected] mysql]# cp user.* /vagrant/mysql/3307/data/test/
五、登入另一個執行個體並查看user表
04:23:53 [email protected] [(none)]>use test;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changed04:23:56 [email protected] [test]>show tables;+----------------+| Tables_in_test |+----------------+| user           |+----------------+1 row in set (0,00 sec)04:23:58 [email protected] [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: NCreate_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: NCreate_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: Y2 rows in set (0,00 sec)
六、把本執行個體的root使用者插入剛剛移動過來的user表
04:25:03 [email protected] [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檔案到原先的位置
[[email protected] test]# cp user.* /vagrant/mysql/3306/data/mysql
八、重新載入配置到記憶體
[[email protected] test]# kill -HUP `pidof mysqld`

通過該步mysql並不會重啟,對應用不會有影響

九、重新登入,OK
[[email protected] test]# mysql -uroot -p -S /tmp/mysql3306.sockEnter password:Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 13Server 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 itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.04:30:57 [email protected] [(none)]>

【MySQL】mysql root密碼忘記怎麼辦?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.