如何在生产服务器中为MySQL配置独立的SSD数据盘挂载?

陌萱吖_2352

陌萱吖_2352

2026-11-06

289人浏览

原创

新SSD必须先挂载并格式化为ext4且挂载到/data,再通过rsync迁移数据、修正属主、更新my.cnf中datadir及socket/pid-file路径,最后配置SELinux/AppArmor策略并验证启动。

如何在生产服务器中为mysql配置独立的ssd数据盘挂载?

确认新SSD已正确挂载且文件系统就绪

别急着改MySQL配置,先确保物理盘可用。执行 lsblk -f,看到类似 /dev/vdb1 ext4 ... /data 这样的输出才算到位。如果 MOUNTPOINT 为空,说明还没挂载;如果挂载点是 /mnt 或临时路径,也得改——生产环境必须用固定、语义清晰的路径,比如 /data/mysql。

常见错误现象:挂载后 df -h 显示容量正常,但 touch /data/test 报 Permission denied。这通常是文件系统没格式化(mkfs.ext4 /dev/vdb1 漏了),或挂载时用了 noexec/nosuid 等限制选项。

  • 格式化前务必确认设备名准确(lsblk 或 fdisk -l),误操作 /dev/vda1 会丢系统
  • 挂载命令推荐用 sudo mount /dev/vdb1 /data,然后写入 /etc/fstab 永久生效:/dev/vdb1 /data ext4 defaults,noatime 0 2
  • noatime 能减少IO,对数据库写密集场景有实际收益

停服务 + 安全拷贝数据到新路径

MySQL必须完全停止才能迁移数据,否则 ibdata1、redo log 等文件状态不一致,启动直接失败。执行 sudo systemctl stop mysqld(CentOS/RHEL)或 sudo systemctl stop mysql(Ubuntu/Debian),再用 ps aux | grep mysql 确认无残留进程。

不要用 mv 直接搬目录。一旦权限出错或磁盘满,MySQL无法启动,又没备份,就是事故现场。必须用 rsync 做原子性同步:

sudo rsync -avh --progress /var/lib/mysql/ /data/mysql/

同步完立刻修正属主:sudo chown -R mysql:mysql /data/mysql。漏掉这步,MySQL 启动时会报 Can't open the mysql.plugin table 或直接拒绝加载InnoDB引擎。

  • rsync 的 -a 保留权限、时间戳、软链;-v 和 --progress 方便观察进度和排查中断
  • 目标路径 /data/mysql 必须为空目录,否则 rsync 会把源目录整个塞进去,变成 /data/mysql/var/lib/mysql
  • 同步后检查关键文件是否存在:ls -l /data/mysql/ibdata1、ls -l /data/mysql/mysql/user.frm(MySQL 5.7)或 mysql/user.ibd(8.0+)

修改my.cnf并绕过SELinux/AppArmor拦截

MySQL只认配置文件里写的 datadir,改路径第一步就是让它“知道”新位置在哪。编辑 /etc/my.cnf(RHEL/CentOS)或 /etc/mysql/my.cnf(Debian/Ubuntu),在 [mysqld] 段下添加:

MySQL8 CRM Schema Design Expert
MySQL8 CRM Schema Design Expert

面向 CRM 系统的 MySQL 8 数据库模式设计。当用户需要为客户关系管理(CRM)系统设计、评审、优化或生成数据库模式时,应使用此项技能。

下载
datadir = /data/mysql

注意:不要注释旧行,也不要加多余空格或斜杠;改完用 mysqld --validate-config(MySQL 5.7.19+)或 mysqld --verbose --help | grep datadir 验证是否被正确读取。

即使配置改对、文件拷全、属主修好,Linux安全模块仍可能拦住启动。典型表现是 systemctl start mysqld 无声失败,journalctl -u mysqld 里只有模糊的 Operation not permitted。

  • Ubuntu/Debian(AppArmor):编辑 /etc/apparmor.d/usr.sbin.mysqld,在 /var/lib/mysql/** rwk, 下新增一行 /data/mysql/** rwk,,再执行 sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
  • CentOS/RHEL(SELinux):运行 sudo semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?",再 sudo restorecon -Rv /data/mysql
  • 如果不确定是否启用,先查:getenforce(SELinux)、aa-status(AppArmor)

验证启动与权限细节

启动前再做一次快速检查:sudo -u mysql ls -l /data/mysql 确保 mysql 用户能读写;sudo -u mysql mysql --socket=/tmp/mysql.sock -e "SELECT 1"(如果 socket 还在默认位置)只是辅助测试,真正要跑的是 sudo systemctl start mysqld 后连上去看状态。

容易被忽略的关键点:

  • socket 和 pid-file 路径也要同步更新,否则客户端连不上或服务无法被管理:
    socket = /data/mysql/mysql.sock<br>pid-file = /data/mysql/mysqld.pid
  • 如果原 my.cnf 里有 tmpdir,也建议改成 /data/tmp 并 chown mysql:mysql /data/tmp,避免临时表写爆系统盘
  • 首次启动成功后,立刻执行 mysql -uroot -p -e "SHOW VARIABLES LIKE 'datadir';" 确认返回值确实是 /data/mysql,别信配置文件,信运行时结果

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

mysql

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

980

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3432

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1116

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

1009

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

534

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3156

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5972

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

907

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 194人学习