type
status
slug
summary
tags
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 的服务,以避免数据损坏或丢失。你可以使用以下命令来停止服务:
如果你没有使用 systemctl 命令,你也可以使用 service 命令来停止服务:

步骤 2:复制数据目录到新位置

接下来,你需要将原来的数据目录复制到新的位置。你可以使用 cp 命令来复制目录,但是你需要加上 -a 选项来保留目录的属性和权限。例如,如果你想要将数据目录复制到 /mnt/data/mysql ,你可以使用以下命令:
💡
注意:你需要确保新的位置有足够的空间来存储数据,并且有正确的权限和所有权。你可以使用 df -h 命令来查看磁盘空间,使用 chmodchown 命令来修改权限和所有权。

步骤 3:修改配置文件(以 archlinux 为例)

然后,你需要修改 MySQL 或 MariaDB 的配置文件,以指定新的数据目录。配置文件通常位于 /etc/my.cnf 或者 /etc/mysql/my.cnf 。你可以使用任何文本编辑器来修改配置文件,比如 nano 或者 vi 。例如,你可以使用以下命令来打开配置文件:
在配置文件中,你需要找到 [mysqld] 部分,并添加或修改 datadir 选项,以指定新的数据目录。例如,如果你将数据目录复制到 /mnt/data/mysql ,你可以添加或修改如下:
  • /etc/my.cnf
  • /etc/my.cnf.d/server.cnf

步骤5:修改 systemd service 文件

  • 修改读写路径
  • 如果你将数据放在了 /home 等文件夹,关闭主目录保护

步骤6:启动 MySQL 数据库、确实修改是否成功

  • 启动 MySQL 数据库
  • 查看数据目录
notion image
  • 创建一个数据库进行测试
notion image

参考资料

懒羊羊睡觉壁纸mysql 批量导入 csv 大文件