Mac電腦mysql安裝了無法啟動,卸載重裝,修改初始密碼方法


Mac電腦mysql安裝了無法啟動,卸載重裝方法,修改初始密碼方法

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

非GA版本的可以下載5.7.42的 修改了一些bug的

https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.24-macos10.14-x86_64.dmg

安裝后最后一步彈出框里是默認的隨機密碼,要記得保存,而且只能使用一次,登陸連接后就會要求你修改密碼才能使用。

 

默認的隨機密碼只能使用一次,登陸連接后就會要求你修改密碼才能使用。

 ---------

安裝后無法啟動,5.7.31版本的沒有直接卸載的按鈕。需要用命令進行卸載。

用命令行啟動提示:

sudo /usr/local/mysql/support-files/mysql.server start
Password:
/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)

啟動的時候,報上述錯誤,從這個報錯來看,多半是因為讀取到了另外的my.cnf導致的
查找my.cnf文件命令:mdfind -name my.cnf

mdfind -name my.cnf
/private/etc/my.cnf

用管理員權限刪除
sudo rm /private/etc/my.cnf

啟動mysql

sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL

出現上面界面說明就是my.cnf導致的了

但還是可能出現其他錯誤,比如:

ERROR! The server quit without updating PID file (/usr/local/mysql/data/xxxdeMacBook-Pro.local.pid).

這種情況有可能是客戶端自動重啟了導出沖突的,打開客戶端看看是否正常running了,如果是就說明沒問題了,可以連接數據庫了(默認沒有root密碼的)

 

 可以用命令查一下mysql的安裝信息:

ps -ef | grep mysql
74 1427 1 0 3:36下午 ?? 0:00.24 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so
501 1443 716 0 3:36下午 ttys000 0:00.00 grep mysql

如果還有問題可能需要修改配置文件了

解決辦法:
1.編輯配置文件:
vim /etc/my.cnf
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock
log-error = /data/mysql/error.log
pid-file = /data/mysql/mysql.pid
user = mysql
tmpdir = /tmp

2.重新初始化mysql:
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid --tmpdir=/tmp


3.再啟動就會成功了

===============

 使用命令卸載,執行下列命令
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

==============

沒有設置密碼用Navicat客戶端連接不上

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> SET PASSWORD FOR 'root'@'localhost' = 'admin1234';

mysql> FLUSH PRIVILEGES;

mysql> exit;

這個時候用Navicat客戶端用密碼連接就可以成功了

sh-3.2# cat /usr/local/mysql/data/zhengdzdeMacBook-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#這種才有執行權限的

 

=================

#登錄mysql
mysql -u root -p
zsh: command not found: mysql #需要設置別名才能直接使用mysql命令
alias mysql=/usr/local/mysql/bin/mysql

/usr/local/mysql/bin/mysql -u root -p
/usr/local/mysql/bin/mysql -h localhost -u root -p

Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

sudo cat data/mysqld.local.err | grep temporary
2020-08-20T07:28:03.071109Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2020-08-20T07:35:56.790127Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2020-08-20T07:36:00.454138Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables

sudo cat data/zhengdzdeMacBook-Pro.local.err | grep temporary

sudo cat /usr/local/mysql/data/zhengdzdeMacBook-Pro.local.err | grep temporary

=============

mysql 5.7 版本以上user表里面沒有password字段了,改成authentication_string 了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM