1 下载
mysql-shell-8.0.37-linux-glibc2.12-x86-64bit.tar.gz
https://dev.mysql.com/downloads/shell/
2 安装mysql-shell
#上传mysql-shell安装包,并安装
#tar -xvf mysql-shell-8.0.37-linux-glibc2.12-x86-64bit.tar.gz
#cd /data/app
#mv mysql-shell-8.0.37-linux-glibc2.12-x86-64bit mysql_shell
#echo "PATH=/data/app/mysql_shell/bin:\$PATH">> /etc/profile
#mysqlsh -version
mysqlsh Ver 8.0.37 for Linux on x86_64 - for MySQL 8.0.37 (MySQL Community Server (GPL))
3 查询数据量
SELECT TABLE_SCHEMA,
round(SUM(data_length+index_length)/1024/1024,2) AS TOTAL_MB,
round(SUM(data_length)/1024/1024,2) AS DATA_MB,
round(SUM(index_length)/1024/1024,2) AS INDEX_MB,
COUNT(*) AS TABLES
FROM INFORMATION_SCHEMA.tables
WHERE TABLE_SCHEMA NOT IN ('sys',
'mysql',
'INFORMATION_SCHEMA',
'performance_schema')
GROUP BY TABLE_SCHEMA
ORDER BY 2 DESC;
4 创建备份目录,保证目录足够大
mkdir -p /tmp/bak
5 备份数据库
mysqlsh root@localhost -S /tmp/mysql.sock -- util dump-instance '/tmp/bak' --threads=16
6 检查MySQL是否满足升级条件
#mysqlsh root:abcd.1234@localhost:3306 -e "util.checkForServerUpgrade();"
Errors: 0
Warnings: 69
Notices: 1
NOTE: No fatal errors were found that would prevent an upgrade, but some potential issues were detected. Please ensure that the reported issues are not significant before upgrading.
Errors: 0 表示可以升级
7 登录mysql命令行,设置参数并关闭MySQL服务
mysql> select version();
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.39 |
+-----------+
mysql> show variables like 'innodb_fast_shutdown';
mysql> set global innodb_fast_shutdown=0;
mysql> shutdown;
8 确认mysqld进程不存在,无 3306端口监听
ps -ef | grep mysqld
netstat -antup | grep 3306
9 移动原MySQL5.7安装目录到old目录
#mv /data/pitp/mysql /data/pitp/mysql57_old
10 准备MySQL 8.0 程序文件
解压mysql 8.0 二进制安装包,准备mysql8.0程序目录
#tar -xvf mysql-8.0.33-linux-glibc2.12-x86_64.tar
#mv mysql-8.0.33-linux-glibc2.12-x86_64 mysql
#chown -R mysql:mysql mysql
11 数据目录,软连接到新库中
ln -s /data/pitp/mysql57_old/data /data/pitp/mysql/data
12 根据需要修改my.cnf 参数,并启动数据库
#/mysql/app/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
2024-05-13T02:15:44.066347Z mysqld_safe Logging to '/data/pitp/mysql/data/KYMYSQL.err'.
2024-05-13T02:15:44.124974Z mysqld_safe Starting mysqld daemon with databases from /data/pitp/mysql/data
2024-05-13T02:15:44.616083Z 0 [System] [MY-010116] [Server] /data/pitp/mysql/bin/mysqld (mysqld 8.0.33) starting as process 2830237
2024-05-13T02:15:44.638159Z 1 [System] [MY-011012] [Server] Starting upgrade of data directory.
2024-05-13T02:15:44.638205Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-05-13T02:15:45.709312Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-05-13T02:15:51.882519Z 2 [System] [MY-011003] [Server] Finished populating Data Dictionary tables with data.
2024-05-13T02:15:59.850131Z 5 [System] [MY-013381] [Server] Server upgrade from '50700' to '80033' started.
2024-05-13T02:16:19.465053Z 5 [System] [MY-013381] [Server] Server upgrade from '50700' to '80033' completed.
2024-05-13T02:16:19.588374Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2024-05-13T02:16:19.588423Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2024-05-13T02:16:19.607814Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /tmp/mysqlx.sock
2024-05-13T02:16:19.607915Z 0 [System] [MY-010931] [Server] /data/pitp/mysql/bin/mysqld: ready for connections. Version: '8.0.33' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server - GPL.
13 升级完成,检查状态
#ps -ef | grep mysqld
#netstat -antup | grep 3306
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.33 |
+-----------+
1 row in set (0.00 sec)
mysql> show engine innodb status;
+--------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------