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 了

原文地址:https://www.cnblogs.com/zdz8207/p/mac-mysql-install-uninstall.html