這裡主要介紹在忘記MySQL的root密碼的情況下,使用--skip-grant-tables關閉MySQL伺服器的認證,從而可以重置root的密碼。MySQL版本為5.7。
1、關閉MySQL
2、使用--skip-grant-tables 和 --skip-networking 重啟MySQL
--skip-grant-tables:此選項會讓MySQL伺服器跳過驗證步驟,允許所有使用者以匿名的方式,無需做密碼驗證直接登陸MySQL伺服器,並且擁有所有的操作許可權。
--skip-networking:此選項會關門MySQL伺服器的遠端連線。這是因為以--skip-grant-tables方式啟動MySQL伺服器會有很大的安全隱患,為了降低風險,需要禁止遠端客戶端的連線。
3、本地連線mysql
--skip-grant-tables已經關閉MySQL伺服器的認證,以匿名方式,無需密碼即可連線。
4、重置密碼
在重置密碼前,先要過載授權表:
MySQL 5.7.6+:
MySQL 5.7.6以及之後的版本,使用ALTER USER語法來修改密碼。
MySQL 5.7.5以及之前的版本
MySQL 5.7.5以及之前的版本使用SET PASSWORD語法修改密碼。
如果上面的方法修改密碼有錯,可以直接修改mysql.user表:
注意:mysql5.7 user表裡已經去掉了password欄位,改為了authentication_string。
5、重啟伺服器
因為之前使用--skip-grant-tables啟動,所以需要重啟mysql伺服器,去掉--skip-grant-tables。
這裡主要介紹在忘記MySQL的root密碼的情況下,使用--skip-grant-tables關閉MySQL伺服器的認證,從而可以重置root的密碼。MySQL版本為5.7。
1、關閉MySQL
2、使用--skip-grant-tables 和 --skip-networking 重啟MySQL
--skip-grant-tables:此選項會讓MySQL伺服器跳過驗證步驟,允許所有使用者以匿名的方式,無需做密碼驗證直接登陸MySQL伺服器,並且擁有所有的操作許可權。
--skip-networking:此選項會關門MySQL伺服器的遠端連線。這是因為以--skip-grant-tables方式啟動MySQL伺服器會有很大的安全隱患,為了降低風險,需要禁止遠端客戶端的連線。
3、本地連線mysql
--skip-grant-tables已經關閉MySQL伺服器的認證,以匿名方式,無需密碼即可連線。
4、重置密碼
在重置密碼前,先要過載授權表:
MySQL 5.7.6+:
MySQL 5.7.6以及之後的版本,使用ALTER USER語法來修改密碼。
MySQL 5.7.5以及之前的版本
MySQL 5.7.5以及之前的版本使用SET PASSWORD語法修改密碼。
如果上面的方法修改密碼有錯,可以直接修改mysql.user表:
注意:mysql5.7 user表裡已經去掉了password欄位,改為了authentication_string。
5、重啟伺服器
因為之前使用--skip-grant-tables啟動,所以需要重啟mysql伺服器,去掉--skip-grant-tables。