Wanneer u LVM-snapshots gebruikt, zijn de volgende vermeldingen nodig in het bestand / etc / sudoers. Voer "visudo" uit om het bestand / etc / sudoers te bewerken en voeg deze items toe om de mysql gebruiker om vereiste commando's uit te voeren zonder dat er om een wachtwoord wordt gevraagd en zonder dat een login-shell vereist is:
mysql = NOPASSWD: / bin / mount, NOPASSWD: / bin / umount, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate, NOPASSWD: / usr / sbin / lvverwijder Standaardinstellingen: % mysql! requetty Standaardinstellingen: mysql! requetty
Denk eraan om het juiste pad naar alle lvmtools te vervangen, afhankelijk van het besturingssysteem, aangezien dit kan verschillen, afhankelijk van de Linux-distributie die je gebruikt.
U kunt uw sudoers-bestand verfijnen voor het geval uw bedrijf een strikter beleid heeft, laten we een voorbeeld nemen:
Laten we zeggen dat op de MySQL-server, diamond.jewel.com, 3 volumegroepen VolGroup00, vg1 & vg2 bestaan en logische volumes LogVol00, lv1 & lv2 één in elk. We hebben de mysql datadir in Logvol00 met innodb-database in lv1 en innodb-logboeken in lv2:
Bestandssysteem 1K-blokken Gebruikt Beschikbaar Gebruik% Gemonteerd op
/ dev / mapper / VolGroup00-LogVol00
7459216 3040728 4033464 43% /
/ dev / sda1 101086 10895 84972 12% / boot
tmpfs 127668 0 127668 0% / dev / shm
/ dev / mapper / vg1-lv1 126931 11832 108546 10% / l1
/ dev / mapper / vg2-lv2 126931 11833 108545 10% / l2
De inhoud van /etc/my.cnf is als volgt
innodb_data_home_dir = / l1 / ibdata innodb_data_file_path = ibdata1: 10M: autoextend innodb_log_group_home_dir = / l2 / iblogs
De configuratie van het sudoer-bestand zou de volgende regels moeten hebben voor het bovenstaande voorbeeld en als u slechts één volumegroep heeft, hoeft u slechts één regel te hebben.
mysql diamond.jewel.com = NOPASSWD: / bin / mount / dev / VolGroup00 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate -L * -s -n zrm * / dev / VolGroup00 / LogVol00, NOPASSWD: / usr / sbin / lvremove -f / dev / VolGroup00 / zrm * mysql diamond.jewel. com = NOPASSWD: / bin / mount / dev / vg1 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD : / usr / sbin / lvcreate -L * -s -n zrm * / dev / vg1 / lv1, NOPASSWD: / usr / sbin / lvremove -f / dev / vg1 / zrm * mysql diamond.jewel.com = NOPASSWD: / bin / mount / dev / vg2 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate -L * -s -n zrm * / dev / vg2 / lv2, NOPASSWD: / usr / sbin / lvremove -f / dev / vg2 / zrm *
OPMERKING: geef het juiste pad naar de lvm-opdrachten en df.
Als u een xfs-bestandssysteem gebruikt, moet u specificeren
mysql diamond.jewel.com = NOPASSWD: / bin / mount -o -nouuid / dev / VolGroup00 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD : / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate -L * -s -n zrm * / dev / VolGroup00 / LogVol00, NOPASSWD: / usr / sbin / lvremove -f / dev / VolGroup00 / zrm *
Vergeet niet om de volgende regels toe te voegen, zodat een login-shell niet nodig is voor het mysql gebruiker om het sudo commando uit te voeren:
Standaardwaarden:% mysql! Requetty Standaardwaarden: mysql! Requetty