MySQL忘記密碼及重置密碼


主機上找到配置文件

BoEzt0.png

  • Windows:my.ini

    選擇默認的安裝路徑,則配置文件在:C:\ProgramData\MySQL\MySQL Server 5.7/my.ini

可能找不到ProgramData文件夾,這是因為一般是被隱藏了,可以直接復制上邊路徑到資源管理器,再訪問即可。

  • Linux:my.cnf

    選擇默認的安裝路徑,則配置文件在:/etc/my.cnf

其他找到my.cnf的方法:

  1. 首先找到mysqld的路徑:
which mysqld

出來的路徑就是mysqld 的路徑。

  1. 敲命令:
/usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options'

在這里就可以看到my.cnf的路徑。

跳過登錄時的權限檢驗

  1. 修改配置文件,在[mysqld]下一行加入:
[mysqld]
skip-grant-tables
  1. 重啟 MySQL 服務:
  • Windows:

    • 推薦:服務 => MySQl => 重啟此服務
      • Bou2X8.png
    • 依次執行net stop mysqlnet start mysql
      • BoKABD.png
  • Linux:

    • 啟動:
      • service mysql start
    • 停止:
      • 使用server方式:service mysqld stop
      • 使用mysqladmin方式:mysqladmin shutdown
    • 重啟:
      • service mysqld restart
      • service mysql restart (5.5.7版本命令)

重新登錄MySQL

  1. 重啟后,用 mysql -uroot -p 登錄:
  • 可以不需要密碼就可以登陸,因為跳過了登陸時的權限檢驗
mysql -uroot -p

BoK3DS.png

設置新的密碼

  1. 選擇 mysql 數據庫:
use mysql
  1. 修改密碼:
update user set authentication_string = password ('new-password') where user = 'root';

這里要更改的是 authentication_string, 而不是 ``password` 字段。否則就像下面的報錯:

mysql> update user  set Password=password('new-password') where user='root';

ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
  1. 刪除配置文件中在[mysqld]下一行加入的:
[mysqld]
skip-grant-tables
  1. 重啟 MySQL 服務

驗證新密碼登錄

  1. 使用:
  • 此時,需要權限檢驗

  • 務必刪除配置文件中的skip-grant-tables,為了數據庫的安全。

mysql -uroot -p

總結

以上所有的命令行過程,如下圖:

BoM3xx.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM