当前位置: 首页 > news >正文

笔记: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搜索功能与订阅支付指南

就在凌晨&#xff0c;在ChatGPT迎来两周岁生日之际&#xff0c;OpenAI重磅发布了ChatGPT的全新人工智能搜索体验。 期待已久的时刻终于到来&#xff0c; ChatGPT正式转型成为一款革命性的AI搜索引擎! 先来看看ChatGPT搜索&#xff1a;这次不是简单的加个搜索框&#xff0c;而…...

【植物识别】Python+深度学习+人工智能+CNN卷积神经网络+算法模型训练+TensorFlow

一、介绍 植物识别系统&#xff0c;使用Python作为主要编程语言开发&#xff0c;通过收集常见的6中植物树叶&#xff08;‘广玉兰’, ‘杜鹃’, ‘梧桐’, ‘樟叶’, ‘芭蕉’, ‘银杏’&#xff09;图片作为数据集&#xff0c;然后使用TensorFlow搭建ResNet50算法网络模型&am…...

快讯,Flutter PC 多窗口新进展,已在 Ubuntu/Canonical 展示

相信 Flutter 开发者对于 Flutter PC 多窗口的支持一直是「望眼欲穿」&#xff0c;而根据 #142845 相关内容展示&#xff0c; 在上月 27 号的 Ubuntu 峰会&#xff0c;Flutter 展示了多窗口相关进展。 事实上 Ubuntu 和 Flutter 的进一步合作关系应该是在 2021 年就开始了&…...

BigDecimal 详解

阿里巴巴 Java 开发手册》中提到&#xff1a;“为了避免精度丢失&#xff0c;可以使用 BigDecimal 来进行浮点数的运算”。 浮点数的运算竟然还会有精度丢失的风险吗&#xff1f;确实会&#xff01; 示例代码&#xff1a; float a 2.0f - 1.9f; float b 1.8f - 1.7f; Syst…...

ESP-HaloPanel:用 ESP32-C2 打造超低成本智能家居面板

项目简介 在生活品质日益提升的今天&#xff0c;智能家居系统已经走进了千家万户&#xff0c;并逐渐成为现代生活的一部份。与此同时&#xff0c;一款设计精致、体积轻盈、操作简便的全屋智能家居控制面板&#xff0c;已经成为众多家庭的新宠。这种高效、直观的智能化的解决方…...

CSS3新增盒子属性(三)

1、CSS3新增盒子属性 1.1 box-sizing 设置盒子的大小。 content-box&#xff1a;设置内容区的大小&#xff1b;border-box&#xff1a;设置盒子的总大小。 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><t…...

Manus在虚拟现实仿真模拟中的应用案例分享

Manus虚拟现实手套作为一种高精度的人机交互设备&#xff0c;在仿真模拟领域展现出了巨大的应用潜力。通过提供实时、准确的手指动作捕捉数据&#xff0c;Manus手套为多个行业带来了前所未有的仿真体验&#xff0c;推动了技术发展和应用创新。 技术特点 1. 高精度手指跟踪 Ma…...

大数据-201 数据挖掘 机器学习理论 - 决策树 局部最优 剪枝 分裂 二叉分裂

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

Scala 的trait

在Scala中&#xff0c;trait是一种特殊概念。trait可以作为接口&#xff0c;同时也可以定义抽象方法。类使用extends继承trait&#xff0c;在Scala中&#xff0c;无论继承类还是继承trait都用extends关键字。在Scala中&#xff0c; 类继承trait后必须实现其中的抽象方法&#x…...

vue3官方示例-简单的 markdown 编辑器。

官方示例不能直接粘贴使用&#xff0c;故自己补了些代码。方便初学者学习&#xff0c;节省时间&#xff0c;提高学习效率。 1、html代码&#xff1a; <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><meta nam…...

Linux标准I/O库汇总整理

Linux标准I/O库&#xff08;Standard I/O Library&#xff09;是C标准库的一部分&#xff0c;提供了一系列用于文件输入输出的高级接口。这些接口通常比低级别的系统调用更易于使用&#xff0c;但也可能带来额外的性能开销。下面是Linux标准I/O库的汇总整理&#xff0c;包括常见…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...