MySQL 8.0 好处多多

  1. 速度快了一倍
  2. 默认 utf8mb4 编码
  3. JSON 增强
  4. 窗口函数,比如:rank
  5. GIS 提升
  6. InnoDB 引擎的 NO WAIT 和 SKIP \ LOCKED 选项

下面开始介绍 服务器(ubuntu)和 本级(macOS)的 MySQL 从 5.7 升级 8.0 的过程。

虽然下面的步骤我实测,升级完成后数据完好无损,但这很大程度是因为我的旧数据类型比较单一。

所以,防止数据损坏,请一定做好数据备份

一、开始升级(服务器)

环境:ubuntu 18 64位

1、备份数据

数据无价,请做好备份

2、升级前的检查准备

在终端运行命令:

mysqlcheck -u root -p --all-databases --check-upgrade

返回结果如果全部都是 OK, 就表示检查没问题。

3、添加 MySQL APT

下载 deb 文件:​​https://dev.mysql.com/downloads/repo/apt/​

更新 apt-get:

sudo dpkg -i xxxx.deb
sudo apt-get update

这里会出现个 TUI 的对话框,第一个选项选择 8.0

4、安装

sudo service mysql stop  # 关闭旧 MySQL 服务

sudo apt-get install mysql-server # 安装 8.0 版本,一路回车。

密码强度我选的旧密码类型(可兼容 5.x,也就是不需要改密码)

sudo service mysql start # 启动 MySQL8.0

查看 mysql 版本

mysql -V
mysql Ver 8.0.30 for Linux on x86_64 (MySQL Community Server - GPL) # 成功

二、开始升级(本地)

1、清理旧数据

brew uninstall mysql

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.*

2、安装

brew services list # 查看服务

sudo brew service stop mysql # 关闭旧 MySQL 服务

brew uninstall mysql # 卸载旧版 MySQL

brew install mysql # 安装 8.0 版本

sudo brew service restart mysql # 启动 MySQL8.0

3、启动

通过上面的命令启动命令时,会出现 MySQL 服务启动失败的情况。

可通过下面的命令,查看 MySQl 是否启动成功。

brew services list # 查看服务

如果发现服务启动不起来,可查看 MySQL 错误日志(/usr/local/var/mysql/计算机名.err)。

4、常见报错和解决办法

服务启动不起来

错误1:Failed to find valid data directory
错误2:The server quit without updating PID file!
...

  1. 删除 MySQL data 目录:​​rm -rf /usr/local/var/mysql/​
  2. 重新初始化数据目录:​​mysqld --initialize-insecure​
  3. 重启服务即可

密码为空桌面客户端链接不上服务器

  1. 查看用户和密码:​​select host, user, authentication_string, plugin from mysql.user;​
  2. 设置密码:​​ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';​
  3. 注意密码需要是 8 位,并且带有大写字母、小写字母、数字、特殊字符。

最后,遇到问题不要慌:

  1. 查看错误日志:/usr/local/var/mysql/计算机名.err
  2. 根据日志求助搜索引擎
  3. 整坏了,重装 ​​brew reinstall mysql​​ 即可

三、参考

  • ubuntu18.04系统下将MySQL版本从5.7升级到8.0
  • Mac卸载mysql并安装mysql升级到8.0.13版本


作者:​削微寒​