Kuinka muuttaa MySQL/MariaDB-oletustietohakemisto Linuxissa
Kun olet asentanut LAMP-pinon komponentit CentOS/RHEL 7 -palvelimelle, sinun kannattaa tehdä muutamia asioita.
Jotkut niistä liittyvät Apachen ja MySQL/MariaDB:n turvallisuuden lisäämiseen, kun taas toiset voivat olla soveltuvia tai ei sovellu asetuksiemme tai tarpeidemme mukaan.
Esimerkiksi tietokantapalvelimen odotetun käytön perusteella saatamme haluta muuttaa oletusarvoisen data-hakemiston (/var/lib/mysql
) toiseen paikkaan. Näin on silloin, kun tällaisen hakemiston odotetaan kasvavan suuren käytön vuoksi.
Muuten tiedostojärjestelmä, johon /var
on tallennettu, voi romahtaa jossain vaiheessa, jolloin koko järjestelmä epäonnistuu. Toinen skenaario, jossa oletushakemistoa vaihdetaan, on se, että meillä on oma verkkojako, jota haluamme käyttää todellisten tietojemme tallentamiseen.
Tästä syystä tässä artikkelissa selitämme, kuinka MySQL/MariaDB-oletustietohakemisto muutetaan eri poluksi CentOS/RHEL 7 -palvelimessa ja Ubuntu/Debian-jakeluissa.
Vaikka käytämmekin MariaDB:tä, tässä artikkelissa selitetyt käsitteet ja vaiheet koskevat sekä MySQL:ää että MariaDB:tä, ellei toisin mainita.
Oletusarvoisen MySQL/MariaDB-tietohakemiston muuttaminen
Huomaa: oletamme, että uusi tietohakemistomme on /mnt/mysql-data
. On tärkeää huomata, että tämän hakemiston tulee omistaa mysql:mysql
.
mkdir /mnt/mysql-data
chown -R mysql:mysql /mnt/mysql-data
Olemme jakaneet prosessin viiteen helposti seurattavaan vaiheeseen:
Vaihe 1: Tunnista nykyinen MySQL-tietohakemisto
Aluksi on syytä ja hyvin tunnistaa nykyinen tietohakemisto seuraavalla komennolla. Älä vain oleta, että se on edelleen /var/lib/mysql
, koska sitä olisi voitu muuttaa aiemmin.
mysql -u root -p -e "SELECT @@datadir;"
Kun olet syöttänyt MySQL-salasanan, tulosteen tulee olla samanlainen kuin.
Vaihe 2: Kopioi MySQL-tietohakemisto uuteen sijaintiin
Vältä tietojen korruptio pysäyttämällä palvelu, jos se on parhaillaan käynnissä, ennen kuin jatkat. Käytä tähän tunnettuja systemd-komentoja:
------------- On SystemD -------------
systemctl stop mariadb
systemctl is-active mariadb
------------- On SysVInit -------------
service mysqld stop
service mysqld status
OR
service mysql stop
service mysql status
Jos palvelu on katkaistu, viimeisen komennon tulee olla seuraava:
Kopioi sitten rekursiivisesti tiedoston /var/lib/mysql
sisältö tiedostoon /mnt/mysql-data
säilyttäen alkuperäiset luvat ja aikaleimat:
cp -R -p /var/lib/mysql/* /mnt/mysql-data
Vaihe 3: Määritä uusi MySQL-tietohakemisto
Muokkaa asetustiedostoa (my.cnf
) ilmoittamaan uusi tietohakemisto (tässä tapauksessa /mnt/mysql-data
).
vi /etc/my.cnf
OR
vi /etc/mysql/my.cnf
Etsi osiot [mysqld]
ja [client]
ja tee seuraavat muutokset:
Under [mysqld]:
datadir=/mnt/mysql-data
socket=/mnt/mysql-data/mysql.sock
Under [client]:
port=3306
socket=/mnt/mysql-data/mysql.sock
Tallenna muutokset ja jatka sitten seuraavaan vaiheeseen.
Vaihe 4: Aseta SELinux Security Context arvoon Data Directory
Tämä vaihe koskee vain RHEL/CentOS:ää ja sen johdannaisia.
Lisää SELinux-suojauskonteksti kohtaan /mnt/mysql-data
, ennen kuin käynnistät MariaDB:n uudelleen.
semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?"
restorecon -R /mnt/mysql-data
Käynnistä seuraavaksi MySQL-palvelu uudelleen.
------------- On SystemD -------------
systemctl stop mariadb
systemctl is-active mariadb
------------- On SysVInit -------------
service mysqld stop
service mysqld status
OR
service mysql stop
service mysql status
Käytä nyt samaa komentoa kuin vaiheessa 1 uuden tietohakemiston sijainnin vahvistamiseksi:
mysql -u root -p -e "SELECT @@datadir;"
Vaihe 5: Luo MySQL-tietokanta vahvistaaksesi tietohakemiston
Kirjaudu MariaDB:hen, luo uusi tietokanta ja tarkista sitten /mnt/mysql-data
:
mysql -u root -p -e "CREATE DATABASE tecmint;"
Onnittelut! Olet vaihtanut onnistuneesti MySQL- tai MariaDB-tietohakemiston.
Yhteenveto
Tässä viestissä olemme keskustelleet kuinka muuttaa tietohakemistoa MySQL- tai MariaDB-palvelimessa, joka toimii CentOS/RHEL 7- ja Ubuntu/Debian-jakeluissa.
Onko sinulla kysyttävää tai kommentteja tästä artikkelista? Kerro meille vapaasti alla olevalla lomakkeella – olemme aina iloisia kuullessamme sinusta!