首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【转】如何将MySQL数据目录更改为CentOS 7上的新位置

【转】如何将MySQL数据目录更改为CentOS 7上的新位置

作者头像
少羽大怪兽
发布于 2018-12-11 08:30:56
发布于 2018-12-11 08:30:56
4.1K0
举报
文章被收录于专栏:架构技术架构技术

本文转载自:http://www.leftso.com/blog/362.html

介绍

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

先决条件

要完成本指南,您需要:

  • 一个CentOS 7服务器,具有sudo安装有权限和MySQL 的非root用户。您可以在CentOS 7初始服务器设置指南中了解更多关于如何设置具有这些权限的用户。如果您还没有安装MySQL,CentOS 7指南中的如何安装MySQL可以帮助您。

在这个例子中,我们将数据移动到一个块存储设备上/mnt/volume-nyc1-01。您可以在DigitalOcean指南的“ 如何使用数据块存储”中了解如何设置。

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

第1步 - 移动MySQL数据目录

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

mysql -u root -p

出现提示时,提供MySQL根密码。然后从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

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

mysqld.service - SYSV: MySQL database server. Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) Active: inactive (dead) since 三 2018-01-31 10:49:00 CST; 4s ago Docs: man:systemd-sysv-generator(8) Process: 11689 ExecStop=/etc/rc.d/init.d/mysqld stop (code=exited, status=0/SUCCESS) Process: 11420 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS) Main PID: 11650 1月 31 10:38:03 localhost.localdomain systemd[1]: Starting SYSV: MySQL database server.... 1月 31 10:38:04 localhost.localdomain mysqld[11420]: Starting mysqld: [ 确定 ] 1月 31 10:38:04 localhost.localdomain systemd[1]: mysqld.service: Supervising process 11650 which is not our child. We'll most likely not notice when it exits. 1月 31 10:38:04 localhost.localdomain systemd[1]: Started SYSV: MySQL database server.. 1月 31 10:48:58 localhost.localdomain systemd[1]: Stopping SYSV: MySQL database server.... 1月 31 10:49:00 localhost.localdomain mysqld[11689]: Stopping mysqld: [ 确定 ] 1月 31 10:49:00 localhost.localdomain systemd[1]: Stopped SYSV: MySQL database server..

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

注意:确保目录中没有结尾斜杠,如果使用了选项卡完成,可能会添加该斜杠。当有斜线时,rsync会将目录的内容转储到挂载点,而不是将其转移到包含的mysql目录中:

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

一旦rsync(如果rsync命令未安装通过命令yum install rsync安装)完成,用.bak扩展名重命名当前文件夹中保存,直到我们已经证实,此举是成功的。通过重新命名它,我们将避免可能从新旧位置的文件中产生混淆:

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

现在我们准备把注意力转向配置。

第2步 - 指向新的数据位置

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

sudo vi /etc/my.cnf

找到以[mysqld]块开始的那一行,datadir=用几个注释与块标题分开。改变后面的路径来反映新的位置。另外,由于套接字先前位于数据目录中,因此我们需要将其更新到新的位置:

 /etc/my.cnf中 [mysqld] . . . datadir=/mnt/volume-nyc1-01/mysql socket=/mnt/volume-nyc1-01/mysql/mysql.sock . . .

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

/etc/my.cnf中 [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以适应调整。尽管我们使用的是块存储设备,但是这里的说明应该适用于重新定义数据目录的位置,而不考虑底层技术。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在MySQL Ubuntu 16.04上将MySQL数据目录移动到新位置
数据库随着时间的推移而增长,有时会超出文件系统的空间。当它们与操作系统的其余部分位于同一分区时,您也可能遇到I / O争用。RAID,网络块存储和其他设备可以提供冗余和其他所需的功能。无论您是要添加更多空间,评估优化性能的方法,还是希望利用其他存储功能,本教程都将指导您重新定位MySQL的数据目录。
GeekZ
2018/10/16
1.8K0
如何在服务器上更改MySQL数据库目录
数据库的大小将会随着时间的推移而增长,有时会超出文件系统的空间。当它们与其余操作系统的部分位于同一分区时,您也可能会遇到I / O争用的问题。RAID,网络块存储和其他设备可以提供冗余和其他功能。无论您是想要添加更多空间,评估优化性能,还是希望利用其他存储功能的优势,本教程都将指导您重新定位MySQL的数据目录。
不会飞的蝴蝶
2018/07/13
7.5K0
在Ubuntu上迁移你的MySQL数据库
无论是要添加更多空间,评估优化性能的方法,还是希望利用其他存储功能,本教程都将指导您重新迁移MySQL的数据目录。
SQL GM
2018/07/26
14.4K5
如何使用Symlink更改MySQL数据目录
数据库随着时间的推移而增长,有时会超出文件系统的空间。当它们与操作系统的其余部分位于同一分区时,可能会遇到I/O冲突。RAID,网络块存储和其他设备可以提供冗余和其他所需的功能。无论您是要添加更多空间,评估优化性能的方法,还是希望利用其他存储功能,本教程都将指导您重新定位MySQL的数据目录。
心语花束
2018/07/26
4.8K0
如何将PostgreSQL数据目录移动到Ubuntu 18.04上的新位置
数据库随着时间的推移而增长,有时会超出原始文件系统的空间。当它们与操作系统的其余部分位于同一分区时,这也可能导致I / O争用。
大瓜皮
2018/10/19
2.7K0
mysql数据目录迁移导致无法正常登录
systemctl stop mysqld && systemctl status mysqld
风起--追风
2023/07/19
6630
CentOS 7系统修改mariadb的数据目录
安装MySQL/MariaDB数据库时,使用了默认的数据目录空间。 今天创建数据表时失败,报错如下:
程裕强
2019/05/27
1.1K0
Linux CentOS7 (Windows)系统安装 MySQL
优秀博客: https://blog.csdn.net/jubincn/article/details/6725582 http://www.runoob.com/mysql/mysql-install.html
zoro
2019/04/11
8140
CentOS Stream 9 安装MySQL5.7和MySQL8.4
好多人都因为“CentOS 已死”觉得自CentOS 8.5以后再没必要使用CentOS了,可是我看过一篇《CentOS Stream 是稳定的 | 观点》,觉得很有道理,于是用了一段时间CentOS Stream9。就我个人而言,它是强大且稳定的,至少我觉得比8.4要好。
IvanM
2024/10/23
1.4K0
【详解】Centos中安装多个mysql数据库的配置实例
在实际的开发和运维场景中,有时我们需要在同一台服务器上运行多个MySQL数据库实例。本文将详细介绍如何在CentOS系统中安装并配置多个MySQL数据库实例。
大盘鸡拌面
2025/04/04
4190
MariaDB修改与迁移文件夹
再三确认mariadb已经安全地关闭后,在目标路径建立新的data文件夹,在这里我以以下路径作为示例:
taixingyiji
2022/10/27
1.3K0
MariaDB修改与迁移文件夹
MySQL更改数据库数据存储索引--Java学习网
MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录。下文总结整理了实践过程的操作步骤。
用户1289394
2021/07/09
1.7K0
Linux MySQL 常见无法启动或启动异常的解决方案
  在 Linux 上自建 MySQL 服务器,经常遇到各种无法启动或启动后异常的问题,本文列举一些常见问题的解决办法。
kirin
2020/11/04
10.7K0
Linux MySQL 常见无法启动或启动异常的解决方案
Centos 更改MySQL5.7数据库目录位置
Centos7.3 安装Mysql5.7并修改初始密码 基于 CentOS Mysql 安装与主从同步配置详解
Javen
2018/08/21
5.1K0
Centos 更改MySQL5.7数据库目录位置
CentOS7下MySQL5.7安装与配置(YUM)
改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。改完之后的效果如下所示:
lyb-geek
2022/03/10
2.2K0
CentOS7下MySQL5.7安装与配置(YUM)
mysql二进制安装与mysql密码破解
1、二进制格式mysql安装 1.1 下载二进制格式的mysql软件包(以5.7版本为例) [root@localhost ~]# cd /usr/src/ [root@localhost src]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz 1.2 解压软件包至/usr/local/ [root@localhost src]# tar -xf mysq
Alone-林
2022/08/20
1.4K0
MySQL安装
误入歧途
2024/05/08
3650
CentOS6.x/CentOS7.x一键安装MySQL5.6/5.7并定制数据目录
系统:CentOS6.x_x64  MySQL:社区版5.6.21,开源数据库用的最多的MySQL,编译安装比较繁琐,yum安装版本比较低且默认安装的位置是/var/下,本次采用官方下载的rpm包,通过脚本自动化安装并定制数据目录到独立分区中(本次为/data1目录)
星哥玩云
2022/08/16
5700
CentOS6.x/CentOS7.x一键安装MySQL5.6/5.7并定制数据目录
Linux(CentOS 7)环境下安装MySQL
在CentOS中默认安装有MariaDB,但是我们需要的是MySQL,安装MySQL可以覆盖MariaDB
海向
2019/09/23
1.1K0
CentOS 7 编译安装MySQL数据库系统
Apache HTTP Server作为优秀的Web服务器软件,提供了面向用户的前端应用功能。在实际生产环境中,为了提供更丰富、更强大的Web应用功能,往往还需要有后台数据库、网页编程语言等多种角色的支持。
星哥玩云
2022/08/18
1.7K0
CentOS 7 编译安装MySQL数据库系统
相关推荐
如何在MySQL Ubuntu 16.04上将MySQL数据目录移动到新位置
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档