type
status
date
slug
summary
tags
category
created days
new update day
icon
password
Created_time
May 11, 2023 01:48 AM
Last edited time
Mar 1, 2025 01:50 AM
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

参考资料

Relate Posts
EtherCAT 主站 IgH 学习之 —— xenomai_posix 例程代码学习
Lazy loaded image
如何在Debian 11上手动编译安装AMD XGBE 10GB网卡驱动
Lazy loaded image
SET_NETDEV_DEV 宏详解
Lazy loaded image
内核源码中为什么会存在同一个函数的多重定义?什么是符号的强弱性?
Lazy loaded image
【转载】EtherCAT主站IgH解析(一)--主站初始化、状态机与EtherCAT报文 - 沐多 - 博客园
Lazy loaded image
Building Debian packages :: Xenomai 3
Lazy loaded image
懒羊羊睡觉壁纸mysql 批量导入 csv 大文件
Loading...
tangcuyu
tangcuyu
一只尘世中努力争渡的🐠
Latest posts
EtherCAT 主站 IgH 学习之 —— xenomai_posix 例程代码
2025-3-7
EtherCAT 主站 IgH 学习之 —— xenomai_posix 例程代码学习
2025-3-6
【转载】EtherCAT主站IgH解析(一)--主站初始化、状态机与EtherCAT报文 - 沐多 - 博客园
2025-3-6
如何在Debian 11上手动编译安装AMD XGBE 10GB网卡驱动
2025-3-4
内核源码中为什么会存在同一个函数的多重定义?什么是符号的强弱性?
2025-3-1
SET_NETDEV_DEV 宏详解
2025-3-1