MySQL 8.0.44升级到8.4.7
小版本升级(如8.0.30-->8.0.44,只需替换二进制文件)
大版本升级(如8.0.44-->8.4.7,除替换二进制文件外,还需要调整配置文件)
| 配置项 | 8.0.44 | 8.4.7 |
|
忽略客户端字符集信息 强制使用服务端默认字符集 |
character-set-client-handshake = FALSE | init_connect = 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci' |
| 禁用ssl |
[mysqld] skip-ssl 或 ssl = 0 |
[client] ssl-mode = DISABLED |
| 认证插件 |
mysql_native_password = ON # MySQL 8.4 开始, |
|
一. 通过替换二进制文件升级
1) 查看当前版本
mysql --version mysql -uxxx -p -e "select version();" mysql -uxxx -p -e "select @@datadir;"
2) 逻辑备份和物理备份
# 普通用户只能看到部分数据库,且无法备份mysql.user表 # 1)逻辑备份 mysqldump -uxxx -p --all-databases --set-gtid-purged=OFF --single-transaction --routines --events --triggers --no-tablespaces > all.sql # 停止当前mysql,然后进行物理备份 # 2)物理备份:数据目录+二进制目录+配置 cp -a /mysql-data-path /mysql-data-backup cp -a /mysql-dir /mysql-dir-bak cp -a /etc/my.cnf /etc/my.cnf-bak
3) 修改配置文件
如下是需修改的配置:
[mysqld] basedir = /data/mysql/mysql-8.4.7 mysql_native_password = ON init_connect = 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci' # character-set-client-handshake = FALSE # skip-ssl # ssl = 0 [client] ssl-mode = DISABLED
4) 替换二进制文件并启动
用新版的二进制文件启动
su - mysql /data/mysql/mysql-8.4.7/bin/mysqld --defaults-file=/etc/my.cnf & # 或通过systemctl start mysqld 启动 # 需同步修改/etc/systemd/system/mysqld.service vim /etc/systemd/system/mysqld.service
systemctl daemon-reload
systemctl start mysqld
5) 验证
mysqlcheck -uxxx -p --all-databases --check select version(); select @@datadir; show databases; show tables; select count(1) from xxx; select * from xxx limit 5;
posted on 2026-01-08 17:39 Karlkiller 阅读(5) 评论(0) 收藏 举报
浙公网安备 33010602011771号