如何判断mysql是否正在使用挂载目录下的目录?

如何判断mysql是否正在使用挂载目录下的目录?

我目前使用 MySQL/home/foo/data/database作为其数据目录。作为/home/foo/data/database已安装的 raid 1 阵列。我遇到的问题是,每次启动时,MySQL 都会在 raid 阵列安装到之前启动/home/foo/data/database,因此 MySQL/home/foo/data/database在根驱动器上使用其数据目录,而不是安装的 raid 阵列。这导致了问题,因为当我查看 raid 阵列状态、已安装的分区和 MySQL 时,一切似乎都很好。除了我的 MySQL 数据库是空的,因为所有数据都在 raid 阵列上。

有没有办法确定 MySQL 是否使用根驱动器路径而不是 raid 阵列?这样我至少知道这个问题是否发生,这样我就可以重新启动 MySQL 来解决问题。

foo@foo:~$ lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop0              7:0    0 110.6M  1 loop  /snap/core/12834
loop1              7:1    0  27.8M  1 loop  /snap/wifi-ap/355
sda                8:0    0 465.8G  0 disk
└─md0              9:0    0 465.7G  0 raid1 /home/foo/data/database
sdb                8:16   0 465.8G  0 disk
└─md0              9:0    0 465.7G  0 raid1 /home/foo/data/database
sdc                8:32   0  59.6G  0 disk
└─sdc3             8:35   0  59.6G  0 part
  ├─foo_vg-root 253:0    0  16.2G  0 lvm   /
  ├─foo_vg-data 253:1    0  42.5G  0 lvm   /home/foo/data
  └─foo_vg-swap 253:2    0     1G  0 lvm   [SWAP]
foo@foo:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system>         <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/foo-root    /               ext4    errors=remount-ro 0       1
/dev/mapper/foo_vg-data /home/foo/data  ext4    defaults          0       0
/dev/mapper/foo_vg-swap none            swap    sw                0       0

/dev/md0        /home/foo/data/database   ext4  defaults,nofail,discard   0   0

答案1

您应该能够编辑 systemd 启动脚本以包含

After home-foo-data-database.mount

在[服务]部分。您还可以创建文件

/etc/systemd/system/mysql.service.d/override.conf

添加条件而不触及原始服务文件。假设该服务被命名为mysql

如果您正在编写自己的启动脚本,则可以使用其他选项。mountpoint /home/foo/data/database如果安装了文件系统,则返回 true,否则返回 false。测试安装点并退出或循环,直到返回 true。

相关内容