笔记:mysql升级 5.6至5.7
说明
一台已有数据的机器,停机升级,从MySQL Server5.6.48,升级到 5.7.38。
环境介绍
10.24.10.247,Mysql 5.6.48
CentOS Linux release 7.9.2009 (Core)
32G内存、500G数据盘/home;
实际数据量约120M,2个logfile共8G;
basedir = /home/mysql/mysql-5.6.33
datadir = /home/mysql/mysql-5.6.33/data
升级至 5.7.38
MySQL数据与软件分离:
basedir = /usr/local/mysql
datadir = /home/mysql/data
mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
操作流程
以下步骤如无特殊说明,均使用root用户操作。
- 事前检查:两个节点上,操作系统版本、位数;防火墙、selinux;磁盘容量;
- 记录与备份信息:MYSQL软件与数据路径;my.cnf,/etc/init.d/mysqld,etc/profile
- 获取并测试my.cnf,确认不兼容参数;确认这台机器上是否还有其他的应用或者服务,是否受升级影响;
- 逻辑与物理备份,停止MYSQL 5.6服务;
- 准备配置文件;
- 安装MYSQL5.7;
- 将5.6/data复制回来5.7,升级;
- 检查进程与状态。
实施步骤
事前检查
- 两个节点上,操作系统版本、位数;
- 防火墙、selinux;
- 磁盘容量;
- 记录与备份信息;
操作系统版本、位数:
[root@CentOS79 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@CentOS79 ~]# getconf LONG_BIT
64
关闭防火墙、selinux
[root@CentOS79 ~]# setenforce 0
[root@CentOS79 ~]# vi /etc/sysconfig/selinux
SELINUX=disabled
[root@CentOS79 ~]# systemctl stop firewalld
[root@CentOS79 ~]# systemctl disable firewalld
查看磁盘容量
[root@CentOS79 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 200K 16G 1% /dev/shm
tmpfs 16G 1.6G 15G 10% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/centos-root 450G 1.1G 449G 1% /
/dev/mapper/centos-usr 50G 8.1G 42G 17% /usr
/dev/sda1 1014M 232M 783M 23% /boot
/dev/sda2 300M 7.9M 292M 3% /boot/efi
/dev/mapper/centos-home 465G 14G 452G 3% /home
/dev/mapper/centos-var 10G 907M 9.2G 9% /var
tmpfs 3.2G 12K 3.2G 1% /run/user/42
tmpfs 3.2G 0 3.2G 0% /run/user/0
记录与备份信息
MYSQL软件与数据路径;
my.cnf,/etc/init.d/mysqld,etc/profile
basedir = /home/mysql/mysql-5.6.33
datadir = /home/mysql/mysql-5.6.33/data
获取并测试my.cnf,确认不兼容参数;
mysql5.6 /etc/my.cnf
相关参数调整见后续步骤。
[client]
port = 3306
socket = /home/mysql/mysql-5.6.33/mysql.sock[mysql]
prompt="\u@\h \R:\m:\s [\d]> "
socket = /home/mysql/mysql-5.6.33/mysql.sock[mysqld]
########basic settings########
server_id = 1
port = 3306
basedir = /home/mysql/mysql-5.6.33
datadir = /home/mysql/mysql-5.6.33/data
socket = /home/mysql/mysql-5.6.33/mysql.sock
pid_file = /home/mysql/mysql-5.6.33/mysql.pid
autocommit = 1
character_set_server=utf8mb4
skip_name_resolve
max_connections = 2000
max_connect_errors = 2000
lower_case_table_names = 1
back_log = 200
transaction_isolation = READ-COMMITTED
explicit_defaults_for_timestamp = 1
join_buffer_size = 134217728
tmp_table_size = 67108864
tmpdir = /home/mysql/mysql-5.6.33/tmp
max_allowed_packet = 16M
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER"
interactive_timeout = 28800
wait_timeout = 28800
max_user_connections = 0
skip-external-locking
read_buffer_size = 64M
read_rnd_buffer_size = 32M
sort_buffer_size = 32M
#########log settings########
log_output = FILE
log_error = error.log
slow_query_log = 1
slow_query_log_file = slow.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
log_slow_slave_statements = 1
log_throttle_queries_not_using_indexes = 10
expire_logs_days = 15
long_query_time = 2
min_examined_row_limit = 100
#########replication settings########
#master_info_repository = TABLE
#relay_log_info_repository = TABLE
log_bin = master_bin
#binlog-ignore-db=mysql
#sync_binlog = 1
#gtid_mode = on
#enforce_gtid_consistency = 1
#log_slave_updates
binlog_format = row
#relay_log = relay3306.log
#relay_log_recovery = 1
#binlog_gtid_simple_recovery = 1
#slave_skip_errors = ddl_exist_errors#########innodb settings########
#按服务器实际内存大小调整
innodb_buffer_pool_size = 8G
#innodb_buffer_pool_size = 1G
innodb_additional_mem_pool_size = 32M
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_lru_scan_depth = 2000
innodb_lock_wait_timeout = 600
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_flush_method = O_DIRECT
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_log_group_home_dir = /home/mysql/mysql-5.6.33/data/
innodb_undo_directory = /home/mysql/mysql-5.6.33/data/
innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_flush_neighbors = 1
innodb_log_file_size = 4G
innodb_log_buffer_size = 16M
innodb_purge_threads = 4
innodb_large_prefix = 1
innodb_thread_concurrency = 64
innodb_print_all_deadlocks = 1
innodb_strict_mode = 1
innodb_sort_buffer_size = 67108864
innodb_max_dirty_pages_pct = 75
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 1
逻辑与物理备份,停止MYSQL 5.6服务
逻辑与物理备份:
mysqldump -u root -p -S /home/mysql/mysql-5.6.33/mysql.sock --add-drop-table --routines --events --all-databases --force > /home/mysql/bc/mysql56.sql
mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"
停止MYSQL 5.6服务:
systemctl stop mysqld
systemctl disable mysqld
mv /etc/init.d/mysqld /home/bc/
4.4准备配置文件
/etc/my.cnf
修改
basedir =/usr/local/mysql 和其他dir;
log_error = /home/mysql/error.log
slow_query_log_file = /home/mysql/slow.log
注释:
pid_file = /home/mysql/mysql.pid
tmpdir = /home/mysql/tmp
innodb_additional_mem_pool_size = 32M:
4.5安装MYSQL5.7
创建数据目录
mkdir -p /home/mysql/data
chown -R mysql:mysql /home/mysql
chmod 750 /home/mysql
tar -zxvf /software/mysql-5.7.38-linux-glibc2.12-x86_64 -C /usr/local
cd /usr/local
ln -s mysql-5.7.38-linux-glibc2.12-x86_64 mysql
chown -R mysql:mysql mysql
chmod -R 750 mysql
安装MYSQL:
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql
记录error.log中的初始密码;
添加路径:
vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
启动MYSQL:
bin/mysqld_safe --user=mysql &
确认配置文件中存在以下参数:
[mysqld]
federated
skip-external-locking
skip-name-resolve
修改root密码:
set password for root@localhost = password('A_isino#888');
flush privileges;
shutdown;
4.6将5.6/data复制回来5.7,升级
cp -rp /home/bc/mysql-5.6.33/data/* /home/mysql/data/
删除/home/mysql/data/中的error.log\slow.log;
后台启动MYSQL
cd /usr/local/mysql
nohup ./bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql >/dev/null 2>&1 &
./bin/mysql_upgrade -u root -p -S /home/mysql/mysql.sock
相关文章:
笔记:mysql升级 5.6至5.7
说明 一台已有数据的机器,停机升级,从MySQL Server5.6.48,升级到 5.7.38。 环境介绍 10.24.10.247,Mysql 5.6.48 CentOS Linux release 7.9.2009 (Core) 32G内存、500G数据盘/home; 实际数据量约120M,2个…...
前端的全栈Deno篇(五):与前端保持一致的模块化方案,摆脱ERR_REQUIRE_ESM和mjs、cjs等模块混乱带来的心智负担
在现代JavaScript开发中,模块化系统的演变经历了多次变革,使得前端和后端开发人员在选择模块加载方式时常常感到困惑。尤其是Node.js所采用的CommonJS和ESM(ECMAScript Modules)两种模块体系,以及文件扩展名的多样性&a…...
与外部公司做数据交互时,需要注意哪些事情?
在现代企业系统中,数据交互已成为日常业务流程的核心部分。与外部公司进行数据交换可以带来业务合作和资源共享的机会,但也带来了数据安全、协议兼容性、合规性等方面的挑战。本文将深入探讨在与外部公司进行数据交互时需要关注的关键事项,并…...
基于hive分析Flask为后端框架echarts为前端框架的招聘网站可视化大屏项目
基于hive分析Flask为后端框架echarts为前端框架的招聘网站可视化大屏项目 1. 项目概述 项目目标是构建一个大数据分析系统,包含以下核心模块: 1、数据爬取:通过request请求获取猎聘网的就业数据。 2、数据存储和分析:使用 Hive …...
Ansible 部署应用
Ansible Ansible 是基于 Python 开发,集合了众多优秀运维工具的优点,实现了批量运行命令、部署程序、配置系统等功能的自动化运维管理工具。默认通过 SSH 协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动…...
使用Docker Swarm进行集群管理
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Docker Swarm进行集群管理 Docker Swarm简介 安装Docker 在Ubuntu上安装Docker 在CentOS上安装Docker 在macOS上安装Docker …...
基于树莓派的安保巡逻机器人--(一、快速人脸录入与精准人脸识别)
目录 零、前言 一、人脸检测 二、人脸识别 1、采集人脸 2、训练人脸识别模型 3、人脸识别应用 零、前言 随着智能安防需求的增长,基于人工智能和物联网的安保系统逐渐成为趋势。树莓派因其低成本、高扩展性等特点,成为很多AI项目的理想平台。本文将为大…...
中间件的应用
控制器 <?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class AgeController extends Controller {//public function index(){return "年龄测试";} }路由 // 年龄控制器路由 Route::get("d2/{age}",[AgeController::class,&quo…...
真题与解析 202206二级 青少年软件编程(Python)考级
青少年软件编程(Python)等级考试试卷(二级) 202206真题与解析 分数:100 题数:37 测试时长:60分钟</...
ChatGPT新体验:AI搜索功能与订阅支付指南
就在凌晨,在ChatGPT迎来两周岁生日之际,OpenAI重磅发布了ChatGPT的全新人工智能搜索体验。 期待已久的时刻终于到来, ChatGPT正式转型成为一款革命性的AI搜索引擎! 先来看看ChatGPT搜索:这次不是简单的加个搜索框,而…...
【植物识别】Python+深度学习+人工智能+CNN卷积神经网络+算法模型训练+TensorFlow
一、介绍 植物识别系统,使用Python作为主要编程语言开发,通过收集常见的6中植物树叶(‘广玉兰’, ‘杜鹃’, ‘梧桐’, ‘樟叶’, ‘芭蕉’, ‘银杏’)图片作为数据集,然后使用TensorFlow搭建ResNet50算法网络模型&am…...
快讯,Flutter PC 多窗口新进展,已在 Ubuntu/Canonical 展示
相信 Flutter 开发者对于 Flutter PC 多窗口的支持一直是「望眼欲穿」,而根据 #142845 相关内容展示, 在上月 27 号的 Ubuntu 峰会,Flutter 展示了多窗口相关进展。 事实上 Ubuntu 和 Flutter 的进一步合作关系应该是在 2021 年就开始了&…...
BigDecimal 详解
阿里巴巴 Java 开发手册》中提到:“为了避免精度丢失,可以使用 BigDecimal 来进行浮点数的运算”。 浮点数的运算竟然还会有精度丢失的风险吗?确实会! 示例代码: float a 2.0f - 1.9f; float b 1.8f - 1.7f; Syst…...
ESP-HaloPanel:用 ESP32-C2 打造超低成本智能家居面板
项目简介 在生活品质日益提升的今天,智能家居系统已经走进了千家万户,并逐渐成为现代生活的一部份。与此同时,一款设计精致、体积轻盈、操作简便的全屋智能家居控制面板,已经成为众多家庭的新宠。这种高效、直观的智能化的解决方…...
CSS3新增盒子属性(三)
1、CSS3新增盒子属性 1.1 box-sizing 设置盒子的大小。 content-box:设置内容区的大小;border-box:设置盒子的总大小。 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><t…...
Manus在虚拟现实仿真模拟中的应用案例分享
Manus虚拟现实手套作为一种高精度的人机交互设备,在仿真模拟领域展现出了巨大的应用潜力。通过提供实时、准确的手指动作捕捉数据,Manus手套为多个行业带来了前所未有的仿真体验,推动了技术发展和应用创新。 技术特点 1. 高精度手指跟踪 Ma…...
大数据-201 数据挖掘 机器学习理论 - 决策树 局部最优 剪枝 分裂 二叉分裂
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
Scala 的trait
在Scala中,trait是一种特殊概念。trait可以作为接口,同时也可以定义抽象方法。类使用extends继承trait,在Scala中,无论继承类还是继承trait都用extends关键字。在Scala中, 类继承trait后必须实现其中的抽象方法&#x…...
vue3官方示例-简单的 markdown 编辑器。
官方示例不能直接粘贴使用,故自己补了些代码。方便初学者学习,节省时间,提高学习效率。 1、html代码: <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><meta nam…...
Linux标准I/O库汇总整理
Linux标准I/O库(Standard I/O Library)是C标准库的一部分,提供了一系列用于文件输入输出的高级接口。这些接口通常比低级别的系统调用更易于使用,但也可能带来额外的性能开销。下面是Linux标准I/O库的汇总整理,包括常见…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
算法刷题-回溯
今天给大家分享的还是一道关于dfs回溯的问题,对于这类问题大家还是要多刷和总结,总体难度还是偏大。 对于回溯问题有几个关键点: 1.首先对于这类回溯可以节点可以随机选择的问题,要做mian函数中循环调用dfs(i&#x…...
AWS vs 阿里云:功能、服务与性能对比指南
在云计算领域,Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商,各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5],我将从功能、服务和性能三个方面进行结构化对比分析&#…...
Linux入门课的思维导图
耗时两周,终于把慕课网上的Linux的基础入门课实操、总结完了! 第一次以Blog的形式做学习记录,过程很有意思,但也很耗时。 课程时长5h,涉及到很多专有名词,要去逐个查找,以前接触过的概念因为时…...
Python爬虫(四):PyQuery 框架
PyQuery 框架详解与对比 BeautifulSoup 第一部分:PyQuery 框架介绍 1. PyQuery 是什么? PyQuery 是一个 Python 的 HTML/XML 解析库,它采用了 jQuery 的语法风格,让开发者能够用类似前端 jQuery 的方式处理文档解析。它的核心特…...
