我现在有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.
#
#
/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发布于 2022-04-13 23:10:46
您应该能够编辑您的systemd启动脚本以包括
After home-foo-data-database.mount在那部分。您还可以创建文件。
/etc/systemd/system/mysql.service.d/override.conf若要添加条件而不触及原始服务文件,请执行以下操作。假设服务名为mysql
如果您正在编写自己的启动脚本,还可以使用其他选项。如果安装了文件系统,mountpoint /home/foo/data/database将返回true,否则为false。测试挂载点并退出或循环,直到返回true为止。
https://unix.stackexchange.com/questions/699002
复制相似问题