前段時間遷移一台服務器 MySQL 數據庫,由於這台服務器時間比較久沒有使用了,把密碼忘記了,但是需要把數據庫里的一些數據導出來,所以就在網上找了一下,總結出這篇 MySQL 數據庫忘記密碼的解決方案!
本文使用的是 CentOS 6 和 MySQL 5.6 版本,可能不同版本的命令稍有不同,大家可以根據系統版本查詢相關命令。
首先確認要操作的 MySQL 服務器處於安全的狀態,也就是沒有人能夠連接 MySQL 數據庫。 因為在重新設置 MySQL 的 Root 密碼的期間,在啟動 Mysql 時不啟動授權表功能,可以直接免密碼登錄。可以采用將 MySQL 對外的端口封閉,並且停止 Apache 以及所有的用戶進程的方法實現服務器的准安全狀態。最安全的狀態是到服務器的 Console 上面操作,並且拔掉網線。
1、skip-grant-tables 模式啟動
修改 /etc/my.cnf 文件,在 [mysqld] 區域添加配置,並保存 my.cnf 文件,重啟 MySQL 服務,在控制台登錄 MySQL,如果出現輸入密碼,直接回車,就可以進入數據庫了。
命令如下:
# 修改 /etc/my.cnf 文件 vim /etc/my.cnf # 在 [mysqld] 區域添加配置,並保存 my.cnf 文件 skip-grant-tables # 重啟 MySQL service mysqld restart # 登錄 MySQL mysql -u root -p
2、修改 root 密碼
# 登錄 MySQL 后進入 mysql 數據庫 use mysql; # 修改 root 密碼 update user set password=password('password') where user='root'; # 使密碼生效 flush privileges; # 退出 exit;
3、重啟服務器
# 修改 /etc/my.cnf 文件 vim /etc/my.cnf # 在 [mysqld] 區域刪除改配置,保存 my.cnf 文件 # skip-grant-tables # 重啟 MySQL service mysqld restart
4、測試連接
# root 登錄 mysql -u root -p # 系統會提示輸入 root 的密碼
也可以使用第三方客戶端進行登錄。