實驗介紹:MySQL的root密碼丟失,無法登陸。需要重置其root密碼
環境介紹:編譯安裝的MySQL
這篇博客介紹的找回 mysql root 密碼是 mysql 基於編譯安裝的,如果是多實例下的mysql root 密碼找回參數還有些許的不一樣(如下)
主要區別在於停止 mysql 服務後的啓動命令
編譯安裝的 mysql:mysqld_safe --skip-grant-tables --user=mysql &
多實例的 mysql:mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-table &
在多實例環境下,需要加一個參數指明需要更改密碼的數據庫的 my.cnf 文件,在修改完密碼後,可以通過 killall 命令將 mysqld 服務殺死,登陸時指定 mysql.sock
查看 mysql 版本
mysql --version
停止 mysql 服務
/etc/init.d/mysqld stop
加入參數啓動 mysql 服務
mysqld_safe --skip-grant-tables --user=mysql &
命令行中輸入 mysql,即可登陸
mysql
執行 mysql 命令,重置 msyql root 密碼,並刷新權限
update mysql.user set password=password("123456") where user='root' and host='localhost';
flush privileges;
在執行完權限以後,通過 \q 退出 mysql 命令行。
因爲啓動時沒有通過 mysqld 啓動,所以需要執行 shutdown 命令來關閉 mysql 服務
mysqladmin -uroot -p123456 shutdown
啓動 mysql 服務
/etc/init.d/mysqld start
通過剛纔更改過的密碼登陸 mysql 服務,密碼修改成功
mysql -uroot -p123456
OK,mysql root 密碼已經成功重置