sql >> Database teknologi >  >> RDS >> Mysql

Sådan ændres en standard MySQL/MariaDB-datakatalog i Linux

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!


  1. N. maks. løn i Oracle

  2. Opdel én kolonneværdi i flere kolonneværdier

  3. Sådan vælger du dato uden tid i SQL

  4. Grunde til at forvandle Access Apps til webbaserede apps