在CentOS / RHEL 7服务器上安装LAMP的组件后 ,您可能需要执行几件事情。
其中一些与增加Apache和MySQL / MariaDB的安全性有关 ,而其他可能根据我们的设置或需求可能适用。
例如,根据数据库服务器的预期使用情况,我们可能希望将默认数据目录( /var/lib/mysql
)更改为不同的位置。 这种情况是由于使用率高,预计这种目录会增长。
否则,存储/var
系统可能在一个点崩溃,导致整个系统失败。 更改默认目录的另一种情况是当我们有一个专用的网络共享,我们要用来存储我们的实际数据。
因此,在本文中,我们将介绍如何将默认的MySQL / MariaDB数据目录更改为CentOS / RHEL 7服务器和Ubuntu / Debian发行版的不同路径。
尽管我们将使用MariaDB ,但是除非另有说明,本文所述的概念和本文中采用的步骤都适用于MySQL和MariaDB 。
更改默认的MySQL / MariaDB数据目录
注意 :我们假设我们的新数据目录是/mnt/mysql-data
。 重要的是要注意,这个目录应该由mysql:mysql
。
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
为方便起见,我们将流程分为5个易于遵循的步骤:
第1步:识别当前的MySQL数据目录
首先,使用以下命令识别当前数据目录是非常有价值的。 不要仅仅假定它仍然是/var/lib/mysql
因为它可能在过去被改变了。
# mysql -u root -p -e "SELECT @@datadir;"
输入MySQL密码后,输出应该类似。
识别MySQL数据目录
第2步:将MySQL数据目录复制到新位置
为避免数据损坏,请停止该服务,如果它正在运行,然后继续。 使用systemd众所周知的命令来做到这一点:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
如果服务已经关闭,最后一个命令的输出应该如下:
停止MySQL服务
然后递归地将/var/lib/mysql
的内容复制到/mnt/mysql-data
保存原始权限和时间戳:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
将MySQL数据目录复制到新位置
第3步:配置新的MySQL数据目录
编辑配置文件( my.cnf
)以指示新的数据目录(在这种情况下为/mnt/mysql-data
)。
# vi /etc/my.conf OR # vi /etc/mysql/my.conf
找到[mysqld]
和[client]
部分,并进行以下更改:
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
保存更改,然后继续下一步。
配置新的MySQL数据目录
第4步:将SELinux安全上下文设置为数据目录
此步骤仅适用于RHEL / CentOS及其衍生产品。
在重新启动MariaDB之前,将SELinux安全上下文添加到/mnt/mysql-data
。
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
接下来重新启动MySQL服务。
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
现在,使用与第1步中相同的命令验证新数据目录的位置:
# mysql -u root -p -e "SELECT @@datadir;"
验证MySQL新数据目录
第5步:创建MySQL数据库以确认数据目录
登录到MariaDB,创建一个新的数据库,然后检查/mnt/mysql-data
:
# mysql -u root -p -e "CREATE DATABASE youcl;"
检查MySQL新数据目录
恭喜! 您已成功更改MySQL或MariaDB的数据目录。
概要
在这篇文章中,我们讨论了如何更改在CentOS / RHEL 7和Ubuntu / Debian发行版上运行的MySQL或MariaDB服务器中的数据目录。
您对本文有任何问题或意见? 随时让我们知道使用下面的表格 - 我们总是很高兴听到你的声音!