在CentOS 7上如何将MySQL数据目录更改到新位置

简介

数据库会随着时间的推移而增长,有时会超出文件系统的空间。当它们位于与操作系统的其余部分相同的分区上时,您还可能遇到I/O争用。RAID、网络块存储和其他设备可以提供冗余和其他理想的功能。无论您是添加更多空间,评估性能优化的方法,还是希望利用其他存储功能,本教程将指导您完成重新定位MySQL数据目录。

先决条件

要完成本指南,您需要:

  • 安装了MySQL的CentOS 7服务器,并拥有具有sudo特权的非root用户。您可以在我们的CentOS 7服务器初始化设置指南中了解如何设置具有这些特权的用户。如果您尚未安装MySQL,可以参考我们的CentOS 7上安装MySQL的指南。

在本示例中,我们将数据移动到挂载在/mnt/volume-nyc1-01的块存储设备上。您可以在DigitalOcean指南中了解如何设置这样的设备。

无论您使用什么底层存储,本指南都可以帮助您将数据目录移动到新位置。

步骤1 — 移动MySQL数据目录

为了准备移动MySQL的数据目录,让我们通过使用管理凭据启动交互式MySQL会话来验证当前位置。

mysql -u root -p

在提示时,提供MySQL root密码。然后从MySQL提示符中,选择数据目录:

select @@datadir;

+-----------------+
| @@datadir       |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)

此输出确认了MySQL配置为使用默认数据目录/var/lib/mysql/,因此这就是我们需要移动的目录。确认后,键入exit并按“ENTER”离开监视器:

exit

为了确保数据的完整性,在实际更改数据目录之前,我们将关闭MySQL:

sudo systemctl stop mysqld

systemctl不会显示所有服务管理命令的结果,因此如果您想确保已成功关闭,请使用以下命令:

sudo systemctl status mysqld

如果输出的最后一行告诉您服务器已停止,则可以确保它已关闭:


. . .
Jul 18 11:24:20 ubuntu-512mb-nyc1-01 systemd[1]: Stopped MySQL Community Server.

现在服务器已关闭,我们将使用rsync将现有数据库目录复制到新位置。使用-a标志保留权限和其他目录属性,而-v提供详细输出,以便您可以跟踪进度。

sudo rsync -av /var/lib/mysql /mnt/volume-nyc1-01

rsync完成后,将当前文件夹重命名为.bak扩展名,并保留它,直到我们确认移动成功为止。通过重新命名它,我们将避免由于新位置和旧位置的文件而可能产生的混淆:

sudo mv /var/lib/mysql /var/lib/mysql.bak

现在我们准备转向配置。

步骤2 — 指向新的数据位置

MySQL有几种方法可以覆盖配置值。默认情况下,datadir/etc/my.cnf文件中设置为/var/lib/mysql。编辑此文件以反映新的数据目录:

sudo vi /etc/my.cnf

找到以datadir=开头的[mysqld]块中的行,该行与多个注释分隔开。更改后面的路径以反映新位置。此外,由于套接字先前位于数据目录中,我们需要将其更新到新位置:


[mysqld]
. . .
datadir=/mnt/volume-nyc1-01/mysql
socket=/mnt/volume-nyc1-01/mysql/mysql.sock
. . .

更新现有行后,我们需要为mysql客户端添加配置。在文件底部插入以下设置,以便它不会分割[mysqld]块中的指令:


[client]
port=3306
socket=/mnt/volume-nyc1-01/mysql/mysql.sock

完成后,按ESCAPE键,然后键入:wq!以保存并退出文件。

步骤 3 — 重启 MySQL

现在我们已经更新了配置以使用新的位置,我们可以开始启动 MySQL 并验证我们的工作。

sudo systemctl start mysqld
sudo systemctl status mysqld

为了确保新的数据目录确实在使用中,启动 MySQL 监视器。

mysql -u root -p

再次查看数据目录的值:

select @@datadir;

+----------------------------+
| @@datadir                  |
+----------------------------+
| /mnt/volume-nyc1-01/mysql/ |
+----------------------------+
1 row in set (0.01 sec)

现在,您已经重新启动了 MySQL 并确认它正在使用新位置,可以利用这个机会确保您的数据库完全可用。一旦验证了任何现有数据的完整性,您可以使用 sudo rm -Rf /var/lib/mysql.bak 删除备份数据目录。

结论

在本教程中,我们将 MySQL 的数据目录移动到了新位置,并更新了 SELinux 以适应这一调整。虽然我们使用的是块存储设备,但这里的说明应该适用于重新定义数据目录的位置,而不管底层技术如何。

有关管理 MySQL 数据目录的更多信息,请参阅官方 MySQL 文档中的以下部分:

  • MySQL 数据目录
  • 设置多个数据目录

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

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

相关文章

jvm的面试回答

1、jvm由本地方法栈、虚拟机栈、方法区、程序计数器、堆组成,其中堆和方法区是线程间共享的,程序计数器、虚拟机栈和本地方法栈是线程私有的。 2、虚拟机栈: 保存每个java方法的调用、保存局部变量表、等 栈可能出现内存溢出,如果…

python---3--sort、lambdalen(list1)、sorted_numbers = sorted(numbers)、list.sort()

学习目标: lambda len(list1) sorted_numbers sorted(numbers)list.sort() 目录 学习目标: 学习内容: 匿名函数 lambda表达式 lambda [参数]: 函数 不需要return len(list1) sorted_numbers sorted(numbers) list.sort(keyNone, r…

ActiveMQ入门案例(queue模式和topic模式)

目录 前言:为什么使用消息中间件? 异步通信 缓冲 解耦 前提:安装并启动activemq 一、点对点(point to point, queue) 1.1 创建maven项目 1.2 Pom依赖 1.2 JmsProduce 消息生产者 1.3 JmsConsumer…

深入理解Java中Stream流常用方法及示例

深入理解Java中Stream流常用方法及示例 一、介绍二、举例说明1. filter方法2. map方法3. sorted方法4. forEach方法5. reduce方法6. collect方法7. flatMap方法8. anyMatch和allMatch方法9. findFirst和findAny方法10. skip和limit方法11. distinct方法 一、介绍 Java 8引入的…

背 单 词 (考研词汇闪过)

单词: 买考研词汇闪过 研究艾宾浩斯遗忘曲线 https://www.bilibili.com/video/BV18Y4y1h7YR/?spm_id_from333.337.search-card.all.click&vd_source5cbefe6dd70d6d84830a5891ceab2bf9 单词方法 闪记背两排(5min)重复一遍(2mi…

Pixel-GS:用于3D高斯溅射的具有像素感知梯度的密度控制

Pixel-GS: Density Control with Pixel-aware Gradient for 3D Gaussian Splatting Pixel-GS:用于3D高斯溅射的具有像素感知梯度的密度控制 Zheng Zhang  Wenbo Hu†  Yixing Lao   老宜兴市郑张文博胡 † Tong He  Hengshuang Zhao† 赵同和恒双 †1122113311 …

Web前端 Javascript笔记1

为什么学习 JavaScript? JavaScript 是 web 开发人员必须学习的 3 门语言中的一门: HTML 定义了网页的内容CSS 描述了网页的布局JavaScript 控制了网页的行为 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏…

BTS441RGATMA1 N沟道 43V 17A高侧电源开关芯片 英飞凌

BTS441RGATMA1是一款由Infineon Technologies制造的高侧开关电源芯片。 直 接 联 系 客 服 价 格 比 商 城 下 单 更 便 宜 BTS441RGATMA1具有以下功能: 高端电源开关:BTS441RGATMA1是一种N通道功率场效应晶体管(FET)&#xff…

图像处理与视觉感知---期末复习重点(7)

文章目录 一、图像压缩1.1 三种冗余1.2 模型1.3 信息测量 二、无误差压缩2.1 哈夫曼编码2.1.1 步骤2.1.2 例题 2.2 算术编码 三、变换编码 一、图像压缩 1.1 三种冗余 1. 三种基本的是数据冗余为:编码冗余、像素间冗余、心理视觉冗余。 2. 编码冗余:如果…

途游游戏,科锐国际(计算机类),快手,CVTE,得物,蓝禾,奇安信,顺丰,康冠科技,金证科技24春招内推

途游游戏,科锐国际(计算机类),快手,CVTE,得物,蓝禾,奇安信,顺丰,康冠科技,金证科技24春招内推 ①得物 【岗位】技术,设计,…

⭐Unity 里调用弹出电脑系统文件选择窗 (选择图片/文件)

今天遇到的需求要从Uinty里调用选择程序外的图片,类似手机环境下拿图库的照片一样。 效果如下: 话不多说 直接上代码! 1.编辑器模式下 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using Syst…

vue中预览docx、xlsx、pptx、pdf

前言:其实本来是要做全类型文件预览的,但是一直找不到合适的doc,xlx,ppt预览插件。要是有可以使用的,可以评论推荐给我 我使用的node版本:v18.19.1 参考官网:preview 文件预览 | ran 引入方式: //安装组…

瀑布流布局

瀑布流布局:瀑布流,又称瀑布流式布局,是比较流行的一种页面布局,视觉表现为参差不齐的多栏布局。 问题概述: 一次性生成,不需要再次增加,排序顺序由上倒下,由左到右 解决方案: //…

深度分析thinkphp类的自动加载

类的自动加载是框架中非常重要的特性,它允许你在使用类时无需手动包含或引入对应的文件。类的自动加载实现起来很简单,只需这样的一个函数spl_autoload_register就能实现。但框架都有各自的加载规范,并不是所有类都能被自动加载,因…

fatal: Need to specify how to reconcile divergent branches.

报错 hint: You have divergent branches and need to specify how to reconcile them. hint: You can do so by running one of the following commands sometime before hint: your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hi…

最优算法100例之41-用两个栈实现队列

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 用两个栈实现队列 题解报告 stack<int> stack1; stack<int> stack2; void push(int node) {stack1.push(node);…

2024-4-11-arm作业

汇编实现三个灯的闪烁 源代码&#xff1a; .text .global _start _start: 时钟使能LDR r0,0x50000A28ldr r1,[r0]orr r1,r1,#(0x1<<4)str r1,[r0]设置PE10输出LDR r0,0x50006000ldr r1,[r0]bic r1,r1,#(0x3<<20)orr r1,r1,#(0x1<<20)str r1,[r0]设置PE1…

飞机降落蓝桥杯[2023蓝桥省赛B组]

2023蓝桥省赛B组 B题 飞机降落 题解 标准深搜板子题&#xff0c;难度不大 #include<bits/stdc.h> using namespace std; #define MAX 10 struct node{int t,d,l;//t:飞机到达时间 d:飞机最大盘旋时间 l:飞机降落所需时间bool v;//标记此架飞机是否被搜索过 用于剪枝 };…

OpenResty,Nginx实现接口验签与黑名单控制

介绍 nginx与openresty是两种优秀知名的7层负载均衡软件&#xff0c;nginx以其出色的性能和稳定性成为首选&#xff0c;而openresty则是在Nginx基础上构建的&#xff0c;支持嵌入Lua语言&#xff0c;大幅提升了开发效率。 安装OpenResty 版本 openresty-1.25.3.1-win64下载地…

brpc: bthread使用

使用bthread并发编程 #include <gflags/gflags.h> #include <butil/logging.h> #include <bthread/bthread.h>static void* func(void* args) {std::string* num static_cast<std::string*>(args);for(int i 0; i < 5; i) {LOG(INFO) << *…