首页 > 数据库 > MySQL > Linux下MySQL 8.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
tar -xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz -C /mysql/app --strip-components=1
编辑 /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
实施过程中 需要 根据实际情况 和需求 自行 添加和 调整参数
cd /mysql/app ./bin/mysqld --defaults-file=/mysql/app/my.cnf --initialize
查看日志获取初始密码:
tail /mysql/product/data/myerror.log
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
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/ ,如需转载,请注明出处,否则将追究法律责任。