忘記mysql密碼如何修改,Mac mysql my.cnf 配置文件,啟動MySql服務命令,無法啟動,無pid報錯原因,卸載重裝方法
忘記mysql密碼修改
mac版MySQL5.7初始密碼,修改密碼
注意事項:
加網上下載的那個my.cnf 就啟動不了,沒辦法用skip-grant-tables 這個跳過安全認證的用空密碼進去再改密碼的方法
要先用 sudo su (輸入密碼)進入到新的控制台sh-3.2#這種才有執行權限的
要先停止了服務 再執行./mysqld_safe --skip-grant-tables &才有效的
----------
1.先停止服務(一定要先停止下面命令才能生效)
系統偏好設置->最下邊點mysql 在彈出頁面中 關閉mysql服務(點擊stop mysql server)
2.登錄管理員權限 sudo su 輸入密碼,進入sh-3.2# 終端
sudo su
輸入電腦密碼
進入終端輸入:
sh-3.2# cd /usr/local/mysql/bin/
回車后輸入以下命令來禁止mysql驗證功能
sh-3.2# ./mysqld_safe --skip-grant-tables &
回車后mysql會自動重啟(偏好設置中mysql的狀態會變成running) 回到控制台
3.輸入命令 ./mysql
sh-3.2# ./mysql
不需要輸入密碼,回車后進入數據庫控制界面,輸入下面命令。密碼必須為復雜的密碼,字母+數字,8位數以上(例如:admin1234)
首先執行下面命令為了能夠修改任意的密碼,設置密碼后再執行刷新
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR 'root'@'localhost' = 'admin1234';
mysql> FLUSH PRIVILEGES;
mysql> exit;
這個時候用Navicat客戶端用密碼連接就可以成功了。但有個詭異的現象是每次重啟Mac電腦后就又登陸不進去了,重裝了mysql也一樣。
----------
到mysql表里修改:
mysql> use mysql;
ALTER USER root@localhost IDENTIFIED BY 'admin1234';
-----------
注意:上面命令必須在sh-3.2#下面執行,如果Command + N 重新打開一個終端,輸入mysql -u -root 會報下面錯誤。
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
-----------
sh-3.2# cat /usr/local/mysql/data/xxxdeMacBook-Pro.local.err | grep temporary
2020-08-20T11:41:52.738831Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
要先用 sudo su (輸入密碼)進入到新的控制台sh-3.2#這種才有執行權限的
=============
Mac mysql my.cnf 配置文件
使用Mac的小伙伴在安裝配置mysql的時候可能會遇到需要配置my.cnf配置文件的情況,但是不管是用homebrew還是用mysql安裝包安裝的客戶端都不會生成這個文件。
5.7.20之后的mysql默認沒有my.cnf 本人測試了下載my.cnf放到/etc目錄下直接就啟動不了了
1.如果你只是想確認mysql加載的是哪個配置文件那你可以使用以下方法進行確認。
mysql --verbose --help | grep my.cnf
會得到類似以下的幾個地址,默認是在/etc/下的my.cnf。
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
2.如果你沒有使用過my.cnf,那就必須手動創建一個my.cnf目錄放在上一條我們看到的幾個目錄下面,通常/usr/local/mysql/support-files/my-default.cnf目錄下會有一個默認文件,你把它拷貝到指定位置做自定義修改。5.7.20之后的mysql默認沒有my.cnf
可以到官方下載my.cnf
https://www.fromdual.com/sites/default/files/my.cnf
其他后綴的可以訪問下面鏈接查看
https://www.fromdual.com/mysql-configuration-file-sample
===============
啟動MySql服務:
sudo /usr/local/mysql/support-files/mysql.server start
停止MySql服務:
sudo /usr/local/mysql/support-files/mysql.server stop
重啟MySql服務:
sudo /usr/local/mysql/support-files/mysql.server restart
alias mysql=/usr/local/mysql/bin/mysql
alias server=/usr/local/mysql/support-files/mysql.server
=============
MySQL啟動失敗,未生成pid文件的解決方法
首先pid文件是mysql啟動后,生成的一個文件,里面記錄的是mysql當前的進程號,如果創建失敗,mysql就無法啟動。
可能原因:
mysql的端口被占用
生成pid文件的目錄mysql的權限不足
mysql對應的my.cnf配置文件錯誤
mysql的啟動腳本有問題
mysql有殘余數據影響了服務的啟動
=============
mac 升級mysql無法啟動,無pid報錯原因
ERROR! MySQL server PID file could not be found!
/usr/local/mysql/support-files/mysql.server: line 259: cd: %BASEDIR%: No such file or directory
Starting MySQL
ERROR! Couldn't find MySQL server (%BASEDIR%/bin/mysqld_safe)
在以上兩個問題上面繞了很多彎子,查找了很多關於以上兩個問題的解決方法,但是都不行。
只能采用卸載卸載干凈了再重裝。
在系統偏好設置面板中可以看到之前安裝的MySQL,此時若想卸載MySQL,可以雙擊圖標打開界面進行卸載。
使用命令卸載,執行下列命令
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
其實不同的安裝方式有些東西的存儲位置不一樣,刪除完檢查一下下面這些文件是否刪除了,沒有的話則刪除掉:
/usr/local/Cellar 里的mysql文件
/usr/local/var 里的mysql文件
/tmp 里的mysql.sock, mysql.sock.lock, my.cnf文件
pid文件和err文件都在/usr/local/var/mysql里確保刪除了
brew安裝的安裝包存儲在/usr/local/Library/Cache/Homebrew也可以一並刪除
執行brew cleanup
==================
mysql 下載:
https://dev.mysql.com/downloads/mysql/
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.21-macos10.15-x86_64.dmg
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.31-macos10.14-x86_64.dmg
==================
mysql 5.7 版本以上user表里面沒有password字段了,改成authentication_string 了