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 开始,mysql_native_password插件默认被禁用,需要通过配置显式启用
# 默认的认证插件为 caching_sha2_password

     

 

 

 

 

 

 

 

 

 

 

 

 

一.  通过替换二进制文件升级

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)    收藏  举报

导航