Efter installation af komponenterne i en LAMP-stak på en CentOS/RHEL 7-server, er der et par ting, du måske vil gøre.
Nogle af dem har at gøre med at øge sikkerheden for Apache og MySQL / MariaDB, mens andre kan være anvendelige eller ej i henhold til vores opsætning eller behov.
For eksempel, baseret på den forventede brug af databaseserveren, vil vi måske ændre standard data mappe (/var/lib/mysql
) til en anden placering. Dette er tilfældet, når en sådan mappe forventes at vokse på grund af høj brug.
Ellers er filsystemet /var
er gemt, kan kollapse på et tidspunkt, hvilket får hele systemet til at svigte. Et andet scenarie, hvor vi ændrer standardbiblioteket, er, når vi har en dedikeret netværksshare, som vi vil bruge til at gemme vores faktiske data.
Af denne grund vil vi i denne artikel forklare, hvordan man ændrer standard MySQL / MariaDB-databiblioteket til en anden sti på en CentOS/RHEL 7-server og Ubuntu/Debian-distributioner.
Selvom vi vil bruge MariaDB , de forklarede begreber og de trin, der er taget i denne artikel, gælder både for MySQL og til MariaDB medmindre andet er angivet.
Ændring af standard MySQL/MariaDB Data Directory
Bemærk :Vi vil antage, at vores nye databibliotek er /mnt/mysql-data
. Det er vigtigt at bemærke, at denne mappe bør ejes af mysql:mysql
.
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
For nemheds skyld har vi opdelt processen i 5 trin, der er nemme at følge:
Trin 1:Identificer den aktuelle MySQL-datamappe
Til at begynde med er det værdigt og godt at identificere den aktuelle datamappe ved hjælp af følgende kommando. Du skal ikke bare antage, at det stadig er /var/lib/mysql
da det kunne have været ændret i fortiden.
# mysql -u root -p -e "SELECT @@datadir;"
Når du har indtastet MySQL-adgangskoden, skal outputtet ligne.
Trin 2:Kopier MySQL Data Directory til en ny placering
For at undgå datakorruption skal du stoppe tjenesten, hvis den kører i øjeblikket, før du fortsætter. Brug systemd velkendte kommandoer til at gøre det:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Hvis tjenesten er blevet fjernet, skal outputtet af den sidste kommando være som følger:
Kopier derefter rekursivt indholdet af /var/lib/mysql
til /mnt/mysql-data
bevarelse af originale tilladelser og tidsstempler:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
Trin 3:Konfigurer en ny MySQL-datamappe
Rediger konfigurationsfilen (my.cnf
) for at angive den nye datamappe (/mnt/mysql-data
i dette tilfælde).
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
Find [mysqld]
og [client]
sektioner og foretag følgende ændringer:
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
Gem ændringerne, og fortsæt derefter med næste trin.
Trin 4:Indstil SELinux Security Context til Data Directory
Dette trin gælder kun for RHEL/CentOS og dets derivater.
Tilføj SELinux sikkerhedskonteksten til /mnt/mysql-data
før du genstarter MariaDB.
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
Genstart derefter MySQL-tjenesten.
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Brug nu den samme kommando som i Trin 1 for at bekræfte placeringen af den nye datamappe:
# mysql -u root -p -e "SELECT @@datadir;"
Trin 5:Opret MySQL-database for at bekræfte datakataloget
Log ind på MariaDB, opret en ny database og tjek derefter /mnt/mysql-data
:
# mysql -u root -p -e "CREATE DATABASE tecmint;"
Tillykke! Du har med succes ændret databiblioteket for MySQL eller MariaDB.
Oversigt
I dette indlæg har vi diskuteret, hvordan man ændrer databiblioteket i en MySQL- eller MariaDB-server, der kører på CentOS/RHEL 7 og Ubuntu/Debian-distributioner.
Har du spørgsmål eller kommentarer til denne artikel? Du er velkommen til at give os besked ved at bruge formularen nedenfor - vi er altid glade for at høre fra dig!