1. 程式人生 > >新版MySQL忘記密碼、只能超級使用者sudo登入解決方法

新版MySQL忘記密碼、只能超級使用者sudo登入解決方法

根本方法:

修改MySQL配置檔案,新增一句skip-grant-tables,重啟即可無需密碼登入

舊版MySQL

在Ubuntu,預設安裝配置檔案全路徑 /etc/mysql/my.cnf

新版MySQL

對於5.7.23等高版本,配置檔案路徑和命令已經改變
在這裡插入圖片描述
此時的 /etc/mysql/my.cnf 檔案已經是一個軟連結,裡面只有指向連結的語句。
真正的配置檔案是 /etc/mysql/mysql.conf.d/mysqld.cnf

具體操作

在這裡插入圖片描述
新增完 skip-grant-tables 後, 重啟MySQL

可用的重啟指令
sudo/etc/init.d/mysql restart
sudo service mysql restart

之後可用直接輸入 mysql, 或者mysql -uroot -p 誰便輸入都可以進去
進入後,

  1. 先選擇mysql資料庫
USE mysql;
  1. 給root使用者設定新密碼
update mysql.user set authentication_string=password('新密碼') where user='root' and Host ='localhost';
  1. 退出刪掉skip-grant-tables重啟即可

  2. 若開啟還錯誤,請使用root使用者/sudo mysql -uroot -p 開啟 ,然後輸入以下即可解決

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';