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 了