重置mysql的密碼/無密碼登錄mysql

經常會忘記mysql的root密碼,尤其是機器一多的時候。上週五把科委的服務器遷移到centos上面,當時把mysql配置好了,也能登錄了,但是今天各省測試的時候,發現mysql鏈接失敗,登錄服務器用命令行登錄發現是 “Access Denied”,明明記得是正確的密碼,又不能登錄了,估計又記錯了。

經常會忘記這些密碼,乾脆記錄一下怎麼樣重置密碼吧。我們知道mysql的用戶信息是保存在mysql的一張表裏面的,如果要重置密碼則需要登錄到mysql的服務器。按照mysql的官方文檔,可以使用不需要密碼的方式啓動mysql服務器,這樣就能不需要密碼登錄了。

先關閉mysql

sudo service mysqld stop

然後啓動無權限表限制的服務

sudo mysqld_safe --skip-grant-tables

登錄mysql, 設置密碼

mysql
set password for 'root'@'localhost' = PASSWORD('yourPassword');

注意設置密碼需要使用PASSWORD函數處理,也就是把密碼hash存儲。

重新啓動正常的服務

sudo kill `cat /var/run/mysqld/mysqld.pid`  // 也可以通過ps查找pid再kill
sudo service mysqld start

當然,其他賬號同理可以修改密碼了。注意不要開啓root的遠程登錄權限。
done

參考: https://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章