在Linux系统上更改默认MySQL数据目录的全步骤

 更新时间:2025年09月24日 08:58:07   作者:鸠摩智首席音效师  
MySQL 是一个广泛使用的开源关系数据库管理系统(RDBMS),为无数的 web 应用程序和服务提供支持,在本指南中,我们将引导您完成在 Linux 系统上更改默认 MySQL 数据目录的过程,确保以最小的停机时间顺利过渡,需要的朋友可以参考下

引言

MySQL 是一个广泛使用的开源关系数据库管理系统(RDBMS),为无数的 web 应用程序和服务提供支持。默认情况下,MySQL 将其数据存储在预定义的目录中,这可能并不总是适合您的需求。您可能希望将数据目录移动到另一个位置以获得更好的性能和安全性,或者利用单独的磁盘或分区。

在本指南中,我们将引导您完成在 Linux 系统上更改默认 MySQL 数据目录的过程,确保以最小的停机时间顺利过渡。

Step 1: 准备新的数据目录

第一步是创建一个新目录,用于存储 MySQL 数据,确保新位置有足够的存储空间以满足当前和未来的数据要求,用您所需的路径替换 /new/mysql/data 路径。

sudo mkdir -p /new/mysql/data

接下来,设置新目录的所有权和权限,以匹配默认 MySQL 数据目录的所有权和权限。

sudo chown -R mysql:mysql /new/mysql/data 
sudo chmod 750 /new/mysql/data

Step 2: 停止 MySQL 服务

在更改 MySQL 配置之前,必须先停止 MySQL 服务,以避免数据损坏或丢失。

sudo systemctl stop mysqld

Step 3: 将现有数据复制到新目录

MySQL 服务停止后,可以安全地将现有数据复制到新目录中。需要保留文件的权限和所有权。

sudo rsync -av /var/lib/mysql/* /new/mysql/data

如果原有数据目录有所不同,则将 /var/lib/mysql 替换为当前的 MySQL 数据目录路径。

Step 4: 更新 MySQL 配置

要通知 MySQL 新数据目录,您必须更新配置文件,打开 MySQL 配置文件。

sudo nano /etc/my.cnf

更新 datadir 和 socket 选项以指向新目录

[mysqld]
datadir=/new/mysql/data
socket=/new/mysql/data/mysql.sock

如果这些选项不存在,将它们添加到 [mysqld] 部分,保存并关闭配置文件。

Step 5: 更新 systemd 配置 (可选)

如果您的系统使用 systemd 来管理 MySQL 服务,则可能需要更新 systemd 配置以反映新数据目录。打开

MySQL systemd 服务文件,通常位于 /usr/lib/systemd/system/mysqld.service

/lib/systemd/system/mysql.service

sudo nano /usr/lib/systemd/system/mysqld.service

找到 ExecStart 行并添加 --datadir--socket 选项

ExecStart=/usr/sbin/mysqld --datadir=/new/mysql/data --socket=/new/mysql/data/mysql.sock

保存并关闭该文件,重新加载 systemd 配置。

sudo systemctl daemon-reload

Step 6: 更新 MySQL 客户端配置

为了确保 MySQL 客户端可以使用新的 socket 文件,需要更新客户端配置。

sudo nano /etc/my.cnf

找到 [client] 部分并更 socket 选项以指向新目录

[client]
socket=/new/mysql/data/mysql.sock

如果 socket 选项不存在,将其添加到 [client] 部分。保存并关闭配置文件。

Step 7: 重启 MySQL 服务

重启 MySQL 服务,使更改生效。

sudo systemctl start mysqld

Step 8: 验证更改

查看 mysql 服务状态

sudo systemctl status mysqld

此外,您可以使用客户端连接到 MySQL 服务器,并验证是否正在使用新的数据目录

mysql -u root -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir";'

Step 9: 删除或备份旧数据目录 (可选)

一旦确认 MySQL 正在使用新的数据目录并且一切正常,可以执行以下操作:

删除旧数据目录

sudo rm -rf /var/lib/mysql

或者,创建数据备份

sudo mv /var/lib/mysql /var/lib/mysql_backup

到此这篇关于在Linux系统上更改默认MySQL数据目录的全步骤的文章就介绍到这了,更多相关Linux更改默认MySQL目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux搭建FastDFS文件服务器的实现步骤

    linux搭建FastDFS文件服务器的实现步骤

    本文主要介绍在linux服务器如何搭建FastDFS文件服务器。文中通过图文示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • centos7访问windows系统的共享文件夹详解

    centos7访问windows系统的共享文件夹详解

    文章讲述了在Windows和CentOS系统之间共享文件夹并挂载的过程,包括在Windows上设置共享文件夹,以及在CentOS上使用CIFS协议挂载共享文件夹的详细步骤,此外,还介绍了如何设置开机自动挂载和提高挂载点权限的安全性
    2025-12-12
  • Linux中curl命令和wget命令的使用介绍与比较

    Linux中curl命令和wget命令的使用介绍与比较

    这篇文章主要给大家介绍了Linux中curl命令和wget命令使用以及这两者之间的区别比较的相关资料,curl和wget命令都是Linux下的工具,可以用来下载文件。文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • Linux C 后台服务程序单进程控制的实现

    Linux C 后台服务程序单进程控制的实现

    这篇文章主要介绍了Linux C 后台服务程序单进程控制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Ubuntu下pycharm无法导入类的解决方法

    Ubuntu下pycharm无法导入类的解决方法

    下面小编就为大家分享一篇Ubuntu下pycharm无法导入类的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • linux下搭建scala环境并写个简单的scala程序

    linux下搭建scala环境并写个简单的scala程序

    今天小编就为大家分享一篇关于linux下搭建scala环境并写个简单的scala程序,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • apache虚拟主机的配置指南

    apache虚拟主机的配置指南

    本文介绍了apache虚拟主机的配置的方法,要配置apache的虚拟主机,我们需要分以下几步进行:检查apache虚拟主机模块,开启apache虚拟主机功能,httpd-vhosts.conf文件详解,根据IP配置虚拟主机,根据端口配置虚拟主机,根据域名配置虚拟主机,有需要的小伙伴参考下
    2015-01-01
  • Linux之权限管理解读

    Linux之权限管理解读

    本文介绍了Linux下的超级用户和普通用户以及它们的命令提示符,接着,详细解释了权限的概念、访问者的分类、文件类型与访问权限以及文件权限值的表示方法,最后,文章讨论了文件权限的设置方法,包括chmod、chown和chgrp命令,并列举了一些常见权限问题
    2025-03-03
  • 虚拟机ubuntu16.04无法连网的解决方法

    虚拟机ubuntu16.04无法连网的解决方法

    这篇文章主要为大家详细介绍了虚拟机ubuntu16.04无法连网的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Linux VPS安全设置之一 修改SSH端口(CentOS/Debian)

    Linux VPS安全设置之一 修改SSH端口(CentOS/Debian)

    我们在学会了VPS的安装和建站之后,肯定需要附带学习VPS的安全设置。因为VPS和主机不同,主机商可能会给我们备份,而且主机的安全性都有主机商承担
    2012-09-09

最新评论