解锁MySQL升级秘诀:提升性能、增强安全的必备指南

news2024/11/15 21:35:14

随着mysql不断演进,旧的版本不断地会发现新的漏洞,为修复漏洞体验新版本的功能,就需要对数据库进行升级操作。在这里插入图片描述

升级注意点

备份!备份!备份!

1.从5.6升级到5.7需首先升级到5.6最新版;不支持跨版本升级,如直接从5.5升级到5.7

2.系统初始化时会默认创建root@localhost账户,但如果启用了skip_name_resolve选项,事先需要给127.0.0.1单独授权

3.mysql_install_db命令在5.7.5之后被mysqld --initialize-insecure取代

4.mysql.user的password字段在5.7.6版本后已经被authentication_string取代,如果选择In-place升级,注意运行mysql_upgrade命令进行字段转换。如果是Logical升级,注意执行mysqldump时必须包含–add-drop-table并且不能添加–flush-privileges选项

5.5.7.6之前的版本升级到最新初次启动需要禁用授权表–skip-grant-tables

升级方法

In-Place upgrade

一次in-place升级主要包括停止老的数据库,二进制文件更新,启动新数据库,执行数据库升级命令等

完整操作步骤如下:

1、执行mysql慢速关闭命令,此步骤是为了让脏页刷新到磁盘,避免直接关闭造成数据丢失

mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"

2、关闭旧数据库

mysqladmin -u root -p shutdown

3、如果新的数据库需要和旧数据库在同目录,将旧数据库所在文件夹备份

4、将新的数据库安装包解压

5、如果旧配置文件/etc/my.cnf中定义的数据目录不需要更改,将旧数据库的数据目录下所有文件移动到新的数据库数据目录中

6、运行新的数据库

mysqld_safe --user=mysql &

7、执行mysql_upgrade命令,该命令会检查旧数据与新版本不兼容的地方并自动修正同时升级系统数据库以应用新特性。

mysql_upgrade -uroot -p 

8、重新启动数据库使mysql_upgrade的变更生效

mysqladmin -uroot -p shutdown
mysqld_safe --user=mysql &

9、升级完成

Logical upgrade

一次逻辑升级,包括从旧数据库导出SQL文件、安装新的数据库、导入SQL文件到新数据库中等

完整操作步骤如下:

1、从旧数据库导出SQL文件,包括系统表。如果用到了存储程序,还需在选项中添加–events和–routines参数,不推荐在导出时gtid_mode处于开启状态。

[root@bochs ~]# mysql -uroot -p -e "show variables like 'gtid_mode%';"
Enter password: 
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| gtid_mode     | OFF   |
+---------------+-------+
mysqldump -u root -p
 --add-drop-table --routines --events
 --all-databases --force > data-for-upgrade.sql

2、关闭旧数据库

mysqladmin -uroot -p shutdown

3、安装新的数据库实例,可以使用旧的配置文件,与新版本不兼容的地方需要手动更改

4、初始化mysql,手动执行数据目录

mysqld --initialize-insecure

注意:该步骤会生成临时密码,显示在终端或error日志中,注意保存!

5、启动新数据库

mysqld_safe --user=mysql &

6、重置root密码

shell> mysql -u root -p
Enter password: **** <- 输入第4步的临时密码
mysql> ALTER USER USER() IDENTIFIED BY 'your new password';

7、将旧数据库导出的SQL文件导入新数据库中

mysql -u root -p --force < data-for-upgrade.sql

8、执行mysql_upgrade命令

mysql_upgrade -uroot -p

9、重启新数据库,使mysql_upgrade命令生效

mysqladmin -uroot -p shutdown
mysqld_safe --user=mysql &

10、升级完成

方法比较

  • In-place升级方式不改变数据文件,升级速度快,但不支持跨操作系统升级
  • Logical升级方式需要导出导入数据,在数据量较大的情况下速度会十分缓慢;支持跨操作系统升级

链接:https://www.cnblogs.com/ltzhang/p/13544535.html

(版权归原作者所有,侵删)

结语

如果你觉得文章很棒,可以转发,评论该文章;如果文章有问题,请留言或私信告诉我,我会在第一时间对内容进行调整,这将会帮助每一位想要学习网络基础的小伙伴,感谢!抱拳!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2160719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

消息中间件常见面试题(RabbitMQ)

MQ场景&#xff1a; 异步发送&#xff08;验证码、短信、邮件&#xff09;MySQL、Redis、ES之间的数据同步分布式事务等 一、RabbitMQ 1.1 消息不丢失 提问&#xff1a;如果保证消息不丢失呢&#xff1f; 流程&#xff1a;生产者将消息发送给交换机&#xff0c;交换机发送给…

css实现类似歌词字体渐变的效果

1、HTML <view class"title">哈哈哈哈哈</view> 2、CSS animation: hue 6s infinite linear;background-image: linear-gradient(135deg, #fc00c7 0%, #1c4efd 54%, #00aded 100%);-webkit-text-fill-color: transparent;color: transparent;-webkit-ba…

【**倒计时,人工智能的ASI时代几年内将至-samaltman深夜发文预言**】

在未来的几十年里&#xff0c;我们将能够做到我们的祖辈认为像魔术一样的事情。 这是Sama Ltman博文的第一句话。技术进步加速&#xff1a;随着时间的推移&#xff0c;人类的能力显著提高&#xff0c;我们能够完成前人认为不可能的事情。他认为&#xff1a; 我们的能力增强不…

Spring 核心

Spring 核心 这篇文章&#xff0c;我们换个思路来学习&#xff0c;来践行一下以始为终&#xff0c;以面试题为引来重温一下Spring&#xff0c;毕竟孔子曾说&#xff0c;“温故而知新&#xff0c;可以为师矣。” &#xff0c;可以通过这个链接看看有哪些常见的面试题 Spring 面…

【深度学习】03-神经网络2-1损失函数

在神经网络中&#xff0c;不同任务类型&#xff08;如多分类、二分类、回归&#xff09;需要使用不同的损失函数来衡量模型预测和真实值之间的差异。选择合适的损失函数对于模型的性能至关重要。 这里的是API 的注意⚠️&#xff0c;但是在真实的公式中&#xff0c;目标值一定是…

第二证券:a股创业板科创板是什么意思?各自代码是什么?

a股创业板科创板是什么意思&#xff1f; a股是指人民币一般股票的总称&#xff0c;其发行公司是在我国境内注册的&#xff0c;a股在境内发行并以人民币计价&#xff0c;a股的投资者首要是境内安排、安排或个人&#xff0c;也包括合格的境外安排投资者。 创业板是股票商场的一…

睡眠监测系统基于边缘计算和微服务缓存

这篇论文的主要内容是关于基于边缘计算和微服务缓存的睡眠监测系统。以下是详细内容概述&#xff1a; 标题 睡眠监测系统基于边缘计算和微服务缓存 作者 Nico Surantha - 东京市立大学&#xff0c;日本David Jayaatmaja - 雅加达Bina Nusantara大学&#xff0c;印度尼西亚S…

项目管理软件应具备哪些功能?分享一款功能齐全的项目管理工具

项目管理软件是一类专门设计用于规划、执行和监控项目的工具。它提供了一种集中管理和协调项目活动的方式&#xff0c;有助于提升项目的效率和成功率。本文将介绍项目管理软件的九大基本功能是什么&#xff0c;以及分享一款功能齐全的项目管理软件供大家参考。 一、项目计划与…

CANopen开源库canfestival的移植

本文记录将CANopen开源库CANfestival移植到GD32F470单片机的过程。CANopen协议理解请参考博客&#xff1a;CANopen协议的理解-CSDN博客 CANfestival开源库下载链接 CSDN链接&#xff1a; https://download.csdn.net/download/heqiunong/89774627 官网链接&#xff1a;https:/…

2024年主动降噪头戴式耳机该如何选择?四款品牌高性价比推荐

今天与大家聊一聊头戴式降噪蓝牙耳机。无论是沉浸在游戏的世界中&#xff0c;还是专注于观看视频课程汲取知识&#xff0c;它都能为我带来清晰、震撼的音质体验。对程序员来说&#xff0c;在嘈杂的工作环境中&#xff08;比如机房里&#xff09;&#xff0c;头戴式耳机都能让我…

Linux shell编程学习笔记83:time命令——争分夺秒

0 引言 在DOS或Windows中&#xff0c;我们可以使用time命令来查看或修改系统时间。 但是在Linux中&#xff0c;time命令的功能却与DOS或Windows迥然不同。 1 time命令 的功能、帮助信息、命令格式和参数说明 1.1 time命令 的功能 在Linux&#xff0c;time命令的功能是测量…

鸿蒙 OS 开发单词打卡 APP 项目实战 20240922 笔记和源码分享

配套有完整的录播课, 需要的私信. 零基础入门级别, 有点前端基础都能学会. 效果截图: 代码截图: 页面完整代码: import { AnswerStatus } from ../enums/AnswerStatus import { PracticeStatus } from ../enums/PracticeStatus import { getRandomQuestions, Question …

江协科技STM32学习- P17 TIM输入捕获

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析

文章目录 C string 类详解&#xff1a;从入门到精通前言第一章&#xff1a;C 语言中的字符串 vs C string 类1.1 C 语言中的字符串1.2 C string 类的优势 第二章&#xff1a;string 类的构造与基础操作2.1 string 类的构造方法2.1.1 示例代码&#xff1a;构造字符串 2.2 string…

Kotlin 多种形式的 when 表达式(七)

导读大纲 1.0.1 在变量中捕捉 when 表达式1.0.2 对任意对象使用 when 表达式1.0.3 使用不带参数的 when 表达式 when 表达式专题系列 从枚举类引出 when 表达式 1.0.1 在变量中捕捉 when 表达式 在前面的示例中,when 表达式的评估值是color变量 它是通过调用 measureColor() …

pip的安装和使用

pip的安装和使用 1、 pip 是一个现代的&#xff0c;通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。便于我们对Python的资源包进行管理。 2、注&#xff1a;pip 已内置于 Python 3.4 和 2.7 及以上版本&#xff0c;其他版本需另行安装。 3、在安…

java并发工具包JUC(Java Util Concurrent)

1. 什么是JUC 1.1 JUC简介 JUC&#xff08;Java Util Concurrent&#xff09;是Java中的一个并发工具包&#xff0c;提供了一系列用于多线程编程的类和接口&#xff0c;旨在简化并发编程并提高其效率和可维护性。JUC库包含了许多强大的工具和机制&#xff0c;用于线程管理、同…

多比特AI事业部VP程伟光受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 武汉市多比特信息科技有限公司AI事业部VP程伟光先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾&#xff0c;演讲议题为“AI对于项目经理工作的影响和变化解析”。大会将于10月26-27日在北京举办&am…

如何将Vue项目部署至 nginx

一、准备工作 1.确保安装了开发软件 VS Code&#xff08;此处可查阅安装 VS Code教程&#xff09;&#xff0c;确保相关插件安装成功 2.安装Node.js 和创建Vue项目&#xff08;此处可查阅安装创建教程&#xff09; 3.成功在VS Code运行一个Vue项目&#xff08;此处可查阅运行…

【LeetCode】动态规划—打家劫舍(附完整Python/C++代码)

动态规划—#198. 打家劫舍 前言题目描述基本思路1. 问题定义:2. 理解问题和递推关系:3. 解决方法:4. 进一步优化:5. 小总结: 代码实现Python3代码实现Python 代码解释C代码实现C 代码解释 总结: 前言 在这个问题中&#xff0c;你是一个专业的小偷&#xff0c;计划偷窃沿街的房…