2

ubuntu18.04系统下将MySQL版本从5.7升级到8.0

 2 years ago
source link: http://huanyouchen.github.io/2019/08/08/Upgrade-MySQL-version-from-5.7-to-8.0-under-ubuntu18.04/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
幻悠尘的小窝

The quieter you become,the more you are able to hear.

ubuntu18.04系统下将MySQL版本从5.7升级到8.0

我的系统:Ubuntu 18.04
我的原来的MySQL版本:Server version: 5.7.27-0ubuntu0.18.04.1 (Ubuntu)

本文升级过程参考自:
[Ubuntu] MySQL 5.7 無痛升級到 8.0
https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/

1 升级前的检查准备

在终端运行命令:

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

返回结果如果全部都是OK, 就表示检查没问题,进入下一步。如果有错误,看这里:https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html

备份数据库
之前都没有使用过备份数据库,参考的这个命令:

mkdir mysql-backup
cd mysql-backup
mysqldump --all-databases --single-transaction --quick --lock-tables=false > full-backup-$(date +%F).sql -u root -p

该命令各个参数解释:

–all-databases : 表示导出全部数据库

–single-transaction : 这个不太懂,网上的解释也没看明白,需要补充补充数据库基础了。。

–quick : 导出时不会将数据加载到缓存,而是直接输出。默认就是启用状态。可以使用–skip-quick 取消该选项。

–lock-tables:开始导出前,锁定所有表。当导出多个数据库时,–lock-tables分别为每个数据库锁定表。

$(date+%F)表示获取当前时间,在Linux Shell中:

date       //获取时间
2019年 08月 08日 星期四 11:40:20 CST
date +%F //获取日期
2019-08-08
date +%s //获取时间戳
1565235736

–user, –u指定连接的用户名

–password, –p连接数据库密码

备份MySQL设置

cd mysql-backup
sudo tar zcvf mysql_config.tar.gz /etc/mysql/

3 添加MySQL APT

下载mysql-apt-config_0.8.13-1_all.deb:https://dev.mysql.com/downloads/repo/apt/

sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb

sudo apt-get update

4 安装新版的MySQL

service mysql stop  # 先停了MySQL service

sudo apt-get install mysql-server

sudo service mysql start # 开启MySQL service

最后检查下升级后的版本:

mysql -V
mysql  Ver 8.0.17 for Linux on x86_64 (MySQL Community Server - GPL)

已经升级成功。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK