重置MySQL root 密碼:
當忘記密碼,或者想要強行重置 MySQL 密碼的時候,可以像下面這樣:
1.停止 MySQL 服務
sudo /usr/local/mysql/support-files/mysql.server stop
//當停止失敗 見下邊 如何用mac 活動指示器停止服務。
2.進入安全模式
sudo mysqld_safe --skip-grant-tables
這個地方,如果你 alias 了 mysqlld_safe 這個命令,那么可以直接復制粘貼;如果沒有,則需要加上正確的路徑。在 Linux/OS X 系統下,默認路徑是 /usr/local/mysql/bin/mysqld/usafe。
說是安全模式,其實是超級危險模式!如果你是在本地修改,那沒問題;如果是在服務器上,那你得保證這個時候沒有任何人登錄到系統。因為一旦進入了安全模式,任何人都可以使用任何密碼通過 root 用戶登錄入到 MySQL ,可以執行任何想執行的操作。
這也是為什么,當我們密碼忘記了的時候,我們可以這樣來修改密碼。凡事有利有弊,你可以用這種方式來做好事;而同樣,可以用來做壞事。
3.新打開一個終端,進入 MySQL
mysql -u root -p
這里也和 mysqld_safe 一樣。如果你是 OS X 上新裝的 MySQL ,那么很有可能並不能直接使用 mysql 這個命令。而是要使用它的絕對路徑: /usr/local/mysql/bin/mysql -u root -p
然后輸入任意密碼就可以進入 MySQL 了。
4.修改密碼
進入了之后先不要急着使用 update 命令修改密碼,先看看表中的字段名。不同版本密碼的字段名可能不一樣。
MySQL 的用戶信息是存在 mysql.user 這個表里面的。於是可以先選擇 mysql 這個數據庫,再看數據庫中 user 表中的字段名稱。
use mysql; //切換數據庫
describe user; //查看user表的字段
然后確定密碼字段的名稱,一般可能是 Password。然而在 OS X 的 MySQL 5.7 這個版本中,密碼字段名稱是 authentication_string 。記住這個字段名。
然后修改密碼啊:UPDATE mysql.user SET authentication_string=PASSWORD(‘123456’) where User=’root’; //將root用戶密碼改成 123456
5.刷新權限,使配置生效
flush privileges;
最后再啟動 MySQL
sudo /usr/local/mysql/support-files/mysql.server start
當啟動失敗的話,可以直接用mac工具活動監視器:
搜索mysql 進程名稱列表有mysql的話,直接雙擊出現:這里寫圖片描述
點擊退出即可。
修改完之后記得刷新權限 和重新啟動mysql服務才行。
