处理背景:我这边的情况是这样的,5.7已经被卸载了,想重新安装5.7时发现brew在8-1号已经静止使用5.7了,如果要以别的方式安装5.7有点麻烦了,所以直接升级了8.0
处理步骤:
-
找到5.7版本下的数据目录进行备份先(我这边应为使用了PhpWebStudy,所以可以直接找到5.7的数据目录在Library/PhpWebStudy/server/mysql/data-5.7下)
-
安装mysql8,brew install mysql@8.0,正常启动mysql,可以链接进入mysql后执行
SHOW VARIABLES LIKE 'datadir';
查看数据目录,也可以直接使用 ps aux|grep mysql查看列出来中的--datadir=数据目录
-
找到mysql8.0的数据目录后,先备份一下,防止后续出了问题,可以快速处理回来
# 备份 MySQL 8.0 数据文件 cp -r /path/to/mysql/old_data /path/to/backup/
例如我的就是:cp -r /opt/homebrew/var/mysql(这是我的mysql8.0数据目录) /opt/homebrew/var/mysql_backup(这是备份目录)
-
备份完成后把mysql8.0的数据目录清空
rm -rf /opt/homebrew/var/mysql/*
-
然后把5.7的数据目录拷贝过来
cp -r /path/Library/PhpWebStudy/server/mysql/data-5.7/* /opt/homebrew/var/mysql/
path这个是自己的目录,注意替换
-
然后重新启动mysql,brew services restart mysql@8.0,正常启动就ok了
如果有异常可以执行:mysql_upgrade -u root -p 处理,我这边到第6步就是已经升级完成了,在数据库中可以看到5.7的数据表存在了