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

随着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.xdnf.cn/news/1544291.html

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

相关文章

Apache Iceberg 数据类型参考表

Apache Iceberg 概述-链接 Apache Iceberg 数据类型参考表 数据类型描述实例方法注意事项BOOLEAN布尔类型&#xff0c;表示真或假true, false用于条件判断&#xff0c;例如 WHERE is_active true。确保逻辑条件的正确性。INTEGER32位有符号整数42, -7可用于计算、聚合&#xf…

照片去水印怎么操作?3个高清壁纸无损去水印的教程分享

上网真好啊&#xff01; 能够找到好多摄影大神分享的&#xff0c;超好看的自然景物照片&#xff0c;每一张都想拿来当电脑桌面壁纸、手机壁纸...... 但上网拿的照片有这点不好&#xff0c;就是大部分照片都带有防盗水印&#xff0c;虽说不影响照片的整体美观&#xff0c;但作为…

Android Studio报错 Cause connect timed out

Android Studio报错 Cause connect timed out 解决方法&#xff1a; 在gradle-wrapper.properties中更改distributionUrl为&#xff1a; distributionUrlhttps://mirrors.cloud.tencent.com/gradle/gradle-5.1.1-all.zip如果对你有帮助&#xff0c;就一键三连呗&#xff08;关…

Win11+cuda11.7+spconv11.7搭建OpenPCdet

这里写自定义目录标题 前面詳細的教程參考&#xff1a;https://blog.csdn.net/xuegreat1/article/details/141892867 懶得寫了&#xff0c;先寫遇到的一些教程外的bug&#xff1a; 上文教程走完后運行demo.py&#xff0c;但是發現沒有裝mayavi庫&#xff0c;直接安裝報錯&#…

项目实战总结-Kafka实战应用核心要点

Kafka实战应用核心要点 一、前言二、Kafka避免重复消费2.1 消费者组机制2.2 幂等生产者2.3 事务性生产者/消费者2.4 手动提交偏移量2.5 外部存储管理偏移量2.6 去重逻辑2.7 幂等消息处理逻辑2.8 小结 三、Kafka持久化策略3.1 持久化文件3.2 segment 分段策略3.3 数据文件刷盘策…

迎国庆-为祖国庆生python、Java、C各显神通

" 金秋送爽&#xff0c;丹桂飘香“&#xff0c;我们即将即将迎来祖国母亲的华诞&#xff01;&#xff01; 七十余载风雨兼程&#xff0c;无数先辈以热血铸就辉煌&#xff0c;换来了今日的繁荣昌盛。从东方破晓的第一缕曙光&#xff0c;到星辰大海的无限探索&#xff0c;中…

git 删除 git push 失败的记录

文章目录 问题分析 问题 git push 失败后如何清理 commit 提交的内容 当我们 git push 失败后&#xff0c;如果下次有新的改动需要push时&#xff0c;会出现如下报错 分析 找到需要回退的那次commit的 哈希值 git log然后就回退到了指定版本&#xff0c;这个时候再把新修改…

解析rss链接数据,来长期把某博客数据订阅到自己的网站

目的 当我们打开这个订阅链接&#xff0c;会看到我们的文章信息以xml的形式呈现到浏览器页面中&#xff0c;怎么直接在我们自己的网站中&#xff0c;将这个链接的数据转为我们熟悉的json数据&#xff0c;然后渲染到自己的网站中呢 技术栈 react hookstypescriptwebpack 核心…

【C++掌中宝】深入理解函数重载:概念、规则与应用

文章目录 引言1. 什么是函数重载&#xff1f;2. 为什么需要函数重载&#xff1f;3. 编译器如何解决命名冲突&#xff1f;4. 为什么返回类型不参与重载&#xff1f;5. 重载函数的调用匹配规则6. 编译器如何解析重载函数的调用&#xff1f;7. 重载的限制与注意事项8. 总结结语 引…

柯桥小语种学习之语言交流 | 德语餐厅用语

01 一、入座与点餐 1. Guten Tag! Ein Tisch fr zwei Personen, bitte.&#xff08;你好&#xff01;请给我们一张两人桌。&#xff09; 2. Knnen wir hier sitzen?&#xff08;我们可以坐这里吗&#xff1f;&#xff09; 3. Die Speisekarte, bitte.&#xff08;请给我菜…

在Windows系统上安装的 zlib C++ 库

在Windows系统上安装的 zstd C 库 项目地址步骤步骤一步骤二步骤三如果生成过程中遇到如下错误: 效果 项目地址 https://github.com/madler/zlib 可以发现这个项目有CMakeLists.txt文件,那就比较好搞了 步骤 步骤一 git clone gitgithub.com:madler/zlib.git步骤二 cd zli…

丢失照片/消息/文件,当发现没有备份 Android 手机数据时急救方法

当人们发现他们没有备份 Android 手机数据时&#xff0c;通常为时已晚。但是&#xff0c;我们都不想永久丢失珍贵的照片&#xff0c; 消息和其他文件。这就是为什么您应该检查 遵循 5 大免费 Android 数据恢复工具和最佳替代品 他们。 排名前五的免费 Android 数据恢复软件 1.奇…

黑芝麻A1000-Ubuntu20.04(九)yolov5从训练到板端运行过程详解

宿主机&#xff1a;台式电脑 Ubuntu20.04 开发板&#xff1a;A1000&#xff08;烧录版本SDK v2.3.1.2&#xff09; 模型转换容器&#xff1a;bsnn-tools-container-stk-4.2.0 编译容器&#xff1a;a1000b-sdk-fad-2.3.1.2 yolov5使用工程&#xff1a;黑芝麻根据https://github.…

PHP探索校园新生态校园帮小程序系统小程序源码

探索校园新生态 —— 校园帮小程序系统&#xff0c;让生活更精彩&#xff01; &#x1f331;【开篇&#xff1a;走进未来校园&#xff0c;遇见新生态】&#x1f331; 你是否厌倦了传统校园的繁琐与单调&#xff1f;是否渴望在校园里也能享受到便捷、智能的生活体验&#xff1…

3d可视化图片:通过原图和深度图实现

1、depthy 在线体验demo: https://depthy.stamina.pl/#/ 也可以docker安装上面服务: docker run --rm -t -i -p 9000:9000 ndahlquist/depthy http://localhost:90001)首先传原图 2)再传对应深度图 3)效果 </ifra

网络事件管理

网络事件管理是运行组织 IT 网络不可或缺的一部分&#xff0c;网络事件管理的最终目标很简单&#xff1a;在发生中断时尽快恢复服务或功能。但是为了高效和一致地进行&#xff0c;IT 运营团队需要时刻保持警惕&#xff0c;不断了解网络事件&#xff0c;并且必须系统地遵循一套程…

opencv4.5.5 GPU版本编译

一、安装环境 1、opencv4.5.5 下载地址&#xff1a;https://github.com/opencv/opencv/archive/refs/tags/4.5.5.ziphttps://gitee.com/mirrors/opencv/tree/4.5.0 2、opencv-contrib4.5.5 下载地址&#xff1a;https://github.com/opencv/opencv_contrib/archive/refs/tags/4…

ToB项目身份认证AD集成(二):一分钟搞定window server 2003部署AD域服务并支持ssl加密(多图保姆教程+证书脚本)

在ToB的应用开发中&#xff0c;往往需要集成AD域控实现身份认证&#xff0c;同时也算是近期工作的总结&#xff0c;之前已介绍了基础的AD、Ldap&#xff0c;本文主要介绍如何大家一个本地的测试环境。 相关系列&#xff1a; ToB项目身份认证AD集成&#xff08;一&#xff09;&a…

【JavaSE】-- 类和对象(1)

文章目录 1. 面向对象的初步认知1.1 什么是面向对象1.2 面向对象与面向过程 2. 类的定义和使用2.1 简单认识类2.2 类的定义格式 3. 类的实例化3.1 什么是实例化3.2 类和对象的说明 4. this引用4.1 为什么要有this引用4.2 什么是this引用4.3 this引用的特性 5. 对象的构造及初始…

增强GPT4v的Grounding能力,video-level

开源链接&#xff1a; appletea233/AL-Ref-SAM2: AL-Ref-SAM 2: Unleashing the Temporal-Spatial Reasoning Capacity of GPT for Training-Free Audio and Language Referenced Video Object Segmentation (github.com) In this project, we propose an Audio-Language-Refe…