ITPub博客

首页 > 数据库 > MySQL > Linux下MySQL 8.0升级全攻略

Linux下MySQL 8.0升级全攻略

原创 MySQL 作者:梦夕林1992 时间:2026-05-06 18:36:35 0 删除 编辑

本文将为你详细解析基于Linux环境的MySQL 8.0二进制迁移升级标准化步骤。

一、升级前准备

在开始升级之前,务必做好充分的准备工作:

下载安装包
访问MySQL官网下载页面( https://downloads.mysql.com/archives/community/),选择对应的8.0版本进行下载,并上传至服务器指定目录。

检查升级路径
MySQL不支持跨版本直接升级(例如从5.5直接到8.0)。建议先升级到当前版本的最新版,再逐步升级至目标版本。

配置文件兼容性检查
检查现有配置参数是否与MySQL 8.0兼容,避免升级后出现配置错误。

二、备份数据

升级前务必备份所有数据,防止意外丢失:

/mysql/app/bin/mysqldump -uroot -p --single-transaction --master-data=2 -E -R --all-databases --force > full.sql

这条命令会生成一个完整的数据库备份文件 full.sql ,包含所有数据库、存储过程和事件。

三、数据迁移

将备份文件传输到新服务器(若为本地升级可跳过):

scp full.sql root@192.168.239.52:/root/

如果是本地升级,需要先停止旧版 MySQL服务:

/mysql/app/bin/mysqladmin -uroot -p shutdown

四、安装新的MySQL 8.0

1. 解压安装包

tar -xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz -C /mysql/app --strip-components=1

2. 创建配置文件

编辑 /etc/my.cnf ,以下为关键配置示例:

[mysqld]
user=mysql
port=3306
basedir=/mysql/app #与上面创建的目录一致
datadir=/mysql/product/data #与上面创建的目录一致
log_error=/mysql/product/data/myerror.log
#会话参数
max_connections=4532
max_user_connections=4000
max_connect_errors=50000
wait_timeout=7200
interactive_timeout=7200
thread_cache_size=256
#binlog日志参数
log-bin=mysql-bin
binlog_cache_size=131072
binlog_error_action=ABORT_SERVER
binlog_format=ROW
server_id=1
gtid_mode=on
enforce_gtid_consistency=on
expire_logs_days=30
sync_binlog=1
#慢日志参数
slow_query_log=0
long_query_time=1
log_output=FILE
#Redo日志参数
innodb_log_file_size=1048576000
innodb_log_files_in_group=3
#缓存参数
sort_buffer_size=720896
read_buffer_size=720896
read_rnd_buffer_size=360448
join_buffer_size=360448
max_allowed_packet=1073741824
max_heap_table_size=16777216
tmp_table_size=2097152
#innodb参数
innodb_buffer_pool_size=134217728      #改为内存的50%-80%
innodb_data_file_path=ibdata1:200M:autoextend
innodb_file_per_table=ON
innodb_log_buffer_size=16777216
innodb_flush_method=O_DIRECT
#事务隔离级别
transaction-isolation=READ-COMMITTED
#字符集
character_set_server=utf8mb4
#设置时区
default_time_zone='+8:00'
log_timestamps=SYSTEM
#大小写不敏感
lower_case_table_names=1

实施过程中 需要 根据实际情况 和需求 自行 添加和 调整参数

3. 初始化数据库

cd /mysql/app
./bin/mysqld --defaults-file=/mysql/app/my.cnf --initialize

查看日志获取初始密码:

tail /mysql/product/data/myerror.log

4. 配置服务并启动

cp /mysql/app/support-files/mysql.server /etc/init.d/mysqld
vi /etc/init.d/mysqld
basedir=/mysql/app  #与上面创建的目录一致
datadir=/mysql/product/data #与上面创建的目录一致
service mysqld start

5. 修改 root 密码

mysqladmin -uroot -p password "你的新密码"

五、恢复数据

将备份的数据导入新数据库:

mysql -uroot -p你的新密码 --force < full.sql

六、执行升级操作

根据MySQL版本选择升级方式:

•  MySQL 8.0.16及以上版本 :

service mysqld stop
mysqld_safe --defaults-file=/etc/my.cnf --upgrade=FORCE &

•  MySQL 8.0.16之前版本 :

/mysql/app/bin/mysql_upgrade -uroot -p
service mysqld restart

升级注意事项

测试环境验证 :在生产环境升级前,务必在测试环境完整演练整个流程。

备份策略 :除了数据库备份,建议同时备份配置文件和数据目录。

监控升级过程 :升级过程中密切关注日志输出,及时发现并处理异常。

回退方案 :提前准备好回退方案,以防升级失败需要快速恢复服务。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29956245/viewspace-3117192/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-10-13

  • 博文量
    90
  • 访问量
    85389