type
Post
status
Published
slug
2023/05/11/How-to-Change-the-Default-MySQL/MariaDB-Data-Directory-in-Arch-Linux
summary
tags
Linux
工具
category
技术分享
icon
password
new update day
Property
Oct 22, 2023 01:31 PM
created days
Last edited time
Oct 22, 2023 01:31 PM
MySQL 和 MariaDB 是两种流行的关系型数据库管理系统,它们可以在 Linux 上运行。它们通常将数据存储在
/var/lib/mysql
目录下,这是它们的默认数据目录。但是,有时候你可能想要将数据目录更改到其他位置,比如一个单独的分区或者一个外部硬盘。在本文中,我们将介绍如何在 Linux 中更改 MySQL 或 MariaDB 的默认数据目录。我们假设你已经安装了 MySQL 或 MariaDB,并且知道如何使用命令行。
步骤 1:停止 MySQL/MariaDB 服务
在更改数据目录之前,你需要先停止 MySQL 或 MariaDB 的服务,以避免数据损坏或丢失。你可以使用以下命令来停止服务:
# 对于 MySQL sudo systemctl stop mysql # 对于 MariaDB sudo systemctl stop mariadb
如果你没有使用
systemctl
命令,你也可以使用 service
命令来停止服务:# 对于 MySQL sudo service mysql stop # 对于 MariaDB sudo service mariadb stop
步骤 2:复制数据目录到新位置
接下来,你需要将原来的数据目录复制到新的位置。你可以使用
cp
命令来复制目录,但是你需要加上 -a
选项来保留目录的属性和权限。例如,如果你想要将数据目录复制到 /mnt/data/mysql
,你可以使用以下命令:sudo cp -R -p /var/lib/mysql/* /mnt/data/mysql
注意:你需要确保新的位置有足够的空间来存储数据,并且有正确的权限和所有权。你可以使用
df -h
命令来查看磁盘空间,使用 chmod
和 chown
命令来修改权限和所有权。sudo chown -R mysql:mysql /mnt/data/mysql
步骤 3:修改配置文件(以 archlinux 为例)
然后,你需要修改 MySQL 或 MariaDB 的配置文件,以指定新的数据目录。配置文件通常位于
/etc/my.cnf
或者 /etc/mysql/my.cnf
。你可以使用任何文本编辑器来修改配置文件,比如 nano
或者 vi
。例如,你可以使用以下命令来打开配置文件:sudo nano /etc/my.cnf
在配置文件中,你需要找到
[mysqld]
部分,并添加或修改 datadir
选项,以指定新的数据目录。例如,如果你将数据目录复制到 /mnt/data/mysql
,你可以添加或修改如下:/etc/my.cnf
# # This group is read both by the client and the server # use it for options that affect everything # [client-server] port=3306 socket=/data/mysql/mysql.sock # # include *.cnf from the config directory # !includedir /etc/my.cnf.d
/etc/my.cnf.d/server.cnf
[mysqld] datadir=/data/mysql socket=/data/mysql/mysql.sock
步骤5:修改 systemd service 文件
- 修改读写路径
#ReadWritePaths=-/var/lib/mysql ReadWritePaths=-/data/mysql
- 如果你将数据放在了 /home 等文件夹,关闭主目录保护
# Prevent accessing /home, /root and /run/user ProtectHome=false
步骤6:启动 MySQL 数据库、确实修改是否成功
- 启动 MySQL 数据库
# 对于 MySQL sudo systemctl start mysql # 对于 MariaDB sudo systemctl start mariadb
- 查看数据目录
# mysql -u root -p -e "SELECT @@datadir;"
- 创建一个数据库进行测试
# mysql -u root -p -e "CREATE DATABASE tecmint;"
参考资料
欢迎加入“喵星计算机技术研究院”,原创技术文章第一时间推送。
- 作者:tangcuyu
- 链接:https://expoli.tech/articles/2023/05/11/How-to-Change-the-Default-MySQL/MariaDB-Data-Directory-in-Arch-Linux
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章