mac版Mysql5.7升级Mysql8(解决mysql.infoschema不存在的问题)

首先说一下,拷贝data文件夹有风险,建议还是dump数据再restore,我是因为忘了备份了,所以只好硬着头皮这么干了。。。。。。

开始:

旧版本是5.7,官网下载8的dmg包,安装。

dmg包方式安装的mysql在/usr/local下面,有一个“mysql”的替身,指向实际的mysql安装目录,如果是升级之后的,可以见到两个目录,8的安装过程中,会删除5.7的旧文件,所以5.7的那个里面已经只剩一个data目录了。如图:

mac版Mysql5.7升级Mysql8(解决mysql.infoschema不存在的问题)

在版本8的安装过程中需要设置root账户的密码,此时的root用户和5.7中的root的一点关系也没有了,此时的数据目录是8.0.12文件夹中的data。

安装完成,进入/usr/local/mysql/support-files/,启动服务:sudo mysql.server start,试着登陆root:mysql -u root -p (密码是在安装8.0.12时自己设置的那个),可以成功进入。

之后使用workbench登陆也是可以的,但是,原来的数据库全部没有了,网上查,是可以通过配置文件指定data目录位置,但是觉得以后容易搞乱。所以尝试直接copy数据文件。

停止服务:进入/usr/local/mysql/support-files/       sudo mysql.server stop

备份8.0.12的data文件夹(如果失败了能恢复),之后删除,再把5.7的data全部拷过来。

再次启动服务,用shell的方式可以登录进去,但是workbench报错:('mysql.infoschema'@'localhost') does not exist,无法登陆

关键一步:shell执行:mysql_upgrade -u root -p   如图:

mac版Mysql5.7升级Mysql8(解决mysql.infoschema不存在的问题)

之后可以成功登陆啦,而且以前的几个数据库都在:

mac版Mysql5.7升级Mysql8(解决mysql.infoschema不存在的问题)

 

另:发现一个BUG:新版本的设置工具,一直显示的是这个,如果用shell停止服务,点击按钮,没有反应。。。。(已解决,重新启动系统后正常了

mac版Mysql5.7升级Mysql8(解决mysql.infoschema不存在的问题)