Mount
如何確定mysql是否使用掛載目錄下的目錄?
我目前使用 MySQL
/home/foo/data/database
作為其數據目錄。作為/home/foo/data/database
已安裝的 raid 1 陣列。我遇到的問題是,在啟動時,MySQL 每隔一段時間就會在 raid 陣列安裝到之前啟動/home/foo/data/database
,因此 MySQL/home/foo/data/database
在根驅動器上使用它的 datadir 而不是安裝的 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
您應該能夠編輯 systemd 啟動腳本以包含
After home-foo-data-database.mount
在裡面
$$ Service $$部分。您也可以創建文件
/etc/systemd/system/mysql.service.d/override.conf
在不觸及原始服務文件的情況下添加條件。假設服務被命名
mysql
如果您正在編寫自己的啟動腳本,則可以使用其他選項。
mountpoint /home/foo/data/database
如果文件系統掛載在那裡,將返回 true,否則返回 false。測試掛載點並退出或循環,直到返回 true。