【转】如何将MySQL数据目录更改为CentOS 7上的新位置
本文转载自: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
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以适应调整。尽管我们使用的是块存储设备,但是这里的说明应该适用于重新定义数据目录的位置,而不考虑底层技术。
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=uaou6tuqu2dz
【转】如何将MySQL数据目录更改为CentOS 7上的新位置的更多相关文章
- MySQL数据目录更改及相关问题解决方案
步骤相关 1.停掉MySQL服务 service mysql stop 2.把旧的数据目录/var/lib/mysql备份到新的数据目录/data/mysql cp /var/lib/mysql /d ...
- 在CentOS 7上使用Tripwire监控和检测修改的文件
在CentOS 7上使用Tripwire监控和检测修改的文件 Tripwire是一个免费的开源入侵检测系统(IDS). 它是用于监视和警告系统上文件更改的安全工具. Tripwire是一个功能强大的I ...
- 记 CentOS 服务器上安装 neo4j 图数据库及本地访问
下载 去官网下载压缩包放到服务器上.地址为neo4j 下载中心,我这里选择的是 Neo4j 3.5.25 (tar).具体如何做呢?我这里使用的是土方法,即先压缩包下载到本地电脑(win 10系统), ...
- 阿里云安装LNMP以及更改网站文件和MySQL数据目录
LNMP安装了哪些软件?安装目录在哪LNMP相关软件安装目录Nginx 目录: /usr/local/nginx/MySQL 目录 : /usr/local/mysql/MySQL数据库所在目录:/u ...
- 更改mysql 数据目录
1.停止MySQL服务 service mysqld stop 2.移动数据到新位置 mv /var/lib/mysql /newdir/data/ 3.修改/etc/my.cnf datadir=/ ...
- centos6.4 挂载新盘并移动mysql数据目录
1 centos 挂载新盘并格式化 以vmware workstation12 中安装的centos6. 虚拟机为例进行演示 关机,添加硬盘 开机,格式化硬盘,并挂载 通过命令查看硬盘 fdisk – ...
- mysql集群安装(centos)
mysql cluster : 1. 基于NDB Cluster 的分布式数据库系统 2. mysql集群中各服务器节点不共享数据 3. 在mysql cluster中节点指的是进程,区别于其他的集群 ...
- 更换mysql数据目录后出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 的解决办法
服务器上的mysql默认数据目录为/var/lib/mysql/,同时服务器的/空间不是很大,而近期又有大量的日志需要导入进行分析,时常搞得/的空间捉襟见肘,晚上一狠心就想把mysql的数据目录转移到 ...
- linux mysql 数据目录文件夹移动及所遇到的问题
一 .如果是fedora下用rpm包安装的mysql,修改方法如下: 如果这里说的不够清楚,可以到http://www.vipkj.net/post-839.html给我留言 MySQL默认的数据文件 ...
随机推荐
- Python进程-理论
进程定义 程序: 计算机程序是存储在磁盘上的可执行二进制(或其他类型)文件.只有把它们加载到内存中,并被操作系统调用,它们才会拥有其自己的生命周期. 进程: 进程则是表示的一个正在执行的程序.每个进程 ...
- 【BJOI2019】删数 线段树
题目大意:一个数列若能在有限次数内删空,则称这个数列可以删空,一次删除操作定义如下: 记当前数列长度为$k$,则删掉数列中所有等于$k$的数. 现在有一个长度为$n$的数列$a$,有$m$次修改操作, ...
- Python解析HDF文件 分类: Python 2015-06-25 00:16 743人阅读 评论(0) 收藏
前段时间因为一个业务的需求需要解析一个HDF格式的文件.在这之前也不知道到底什么是HDF文件.百度百科的解释如下: HDF是用于存储和分发科学数据的一种自我描述.多对象文件格式.HDF是由美国国家超级 ...
- js精度溢出解决方案
一般参数值不能超过16位.如果超出16都是用0替代,导致我们查询不到自己想要的结果. 遇到此问题我们做如下修改 自己写属性 原始的: <a href="javascript:void( ...
- 树莓派+tomcat+mysql安装及配置
0x00 系统:ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi 该版本中apt源在国内访问速度不算慢,可以不换,但软件包不完整,建议添加阿里云源 deb ...
- 从零开始学 Web 之 移动Web(五)touch事件的缺陷,移动端常用插件
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- php使用curl模拟GET和POST请求
GET方式提交数据 function http_get($url, $ssl = FALSE) { $curl = curl_init(); // 启动一个CURL会话 curl_setopt($cu ...
- python 浅析格式化输出和深浅copy
一,格式化输出 今天主要想记录一下关于格式化输出的例子,然后结合了自己的理解,分析如下: 格式是 :百分号+占位符 主要有三种使用形式:%s (其中s表示string)表示字符串 %d (其中d表 ...
- SpringBoot 三种方式配置 Druid(包括纯配置文件配置)
记录一下在项目中用纯 YML(application.yml 或者 application.properties)文件.Java 代码配置 Bean 和注解三种方式配置 Alibaba Druid 用 ...
- server下apache2.4.*虚拟主机配置Forbidden You don't have permission to access / on this server.
前言: 继前面两节笔记之后,在配置一个虚拟主机时,这中间却遇见了一个问题,这里需要描述做一下笔记,刚刚安装的是Ubuntu server,apt-get下来的apache的版本是2.4.7,之前一直用 ...