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

Come modificare una directory di dati MySQL/MariaDB predefinita in Linux

Dopo aver installato i componenti di uno stack LAMP su un server CentOS/RHEL 7, ci sono un paio di cose che potresti voler fare.

Alcuni di essi hanno a che fare con l'aumento della sicurezza di Apache e MySQL/MariaDB, mentre altri potrebbero essere applicabili o meno in base alla nostra configurazione o alle nostre esigenze.

Ad esempio, in base all'utilizzo previsto del server di database, potremmo voler modificare i dati predefiniti directory (/var/lib/mysql ) in una posizione diversa. Questo è il caso in cui si prevede che tale directory cresca a causa dell'utilizzo elevato.

Altrimenti, il filesystem dove /var è memorizzato può collassare a un certo punto causando il malfunzionamento dell'intero sistema. Un altro scenario in cui la modifica della directory predefinita è quando abbiamo una condivisione di rete dedicata che vogliamo utilizzare per archiviare i nostri dati effettivi.

Per questo motivo, in questo articolo, spiegheremo come modificare la directory dei dati MySQL/MariaDB predefinita in un percorso diverso su un server CentOS/RHEL 7 e distribuzioni Ubuntu/Debian.

Anche se useremo MariaDB , i concetti spiegati e i passaggi eseguiti in questo articolo si applicano entrambi a MySQL e a MariaDB salvo diversa indicazione.

Modifica della directory dati MySQL/MariaDB predefinita

Nota :Assumiamo che la nostra nuova directory di dati sia /mnt/mysql-data . È importante notare che questa directory dovrebbe essere di proprietà di mysql:mysql .

# mkdir /mnt/mysql-data
# chown -R mysql:mysql /mnt/mysql-data

Per tua comodità, abbiamo suddiviso il processo in 5 passaggi facili da seguire:

Fase 1:Identifica la directory dei dati MySQL corrente

Per iniziare, è opportuno identificare la directory di dati corrente utilizzando il comando seguente. Non dare per scontato che sia ancora /var/lib/mysql poiché avrebbe potuto essere cambiato in passato.

# mysql -u root -p -e "SELECT @@datadir;"

Dopo aver inserito la password MySQL, l'output dovrebbe essere simile a.

Fase 2:copia la directory dei dati MySQL in una nuova posizione

Per evitare il danneggiamento dei dati, interrompere il servizio se è attualmente in esecuzione prima di procedere. Usa il sistema di sistema comandi ben noti per farlo:

------------- On SystemD ------------- 
# systemctl stop mariadb
# systemctl is-active mariadb

------------- On SysVInit ------------- 
# service mysqld stop
# service mysqld status

OR

# service mysql stop
# service mysql status

Se il servizio è stato interrotto, l'output dell'ultimo comando dovrebbe essere il seguente:

Quindi copia ricorsivamente il contenuto di /var/lib/mysql a /mnt/mysql-data preservare le autorizzazioni e i timestamp originali:

# cp -R -p /var/lib/mysql/* /mnt/mysql-data

Fase 3:Configura una nuova directory di dati MySQL

Modifica il file di configurazione (my.cnf ) per indicare la nuova directory di dati (/mnt/mysql-data in questo caso).

# vi /etc/my.cnf
OR
# vi /etc/mysql/my.cnf

Individua il [mysqld] e [client] sezioni e apportare le seguenti modifiche:

Under [mysqld]:
datadir=/mnt/mysql-data
socket=/mnt/mysql-data/mysql.sock

Under [client]:
port=3306
socket=/mnt/mysql-data/mysql.sock

Salva le modifiche e poi procedi con il passaggio successivo.

Fase 4:imposta SELinux Security Context su Data Directory

Questo passaggio è applicabile solo a RHEL/CentOS e suoi derivati.

Aggiungi il contesto di sicurezza SELinux a /mnt/mysql-data prima di riavviare MariaDB.

# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?"
# restorecon -R /mnt/mysql-data

Quindi riavvia il servizio MySQL.

------------- On SystemD ------------- 
# systemctl stop mariadb
# systemctl is-active mariadb

------------- On SysVInit ------------- 
# service mysqld stop
# service mysqld status

OR

# service mysql stop
# service mysql status

Ora usa lo stesso comando del Passaggio 1 per verificare la posizione della nuova directory di dati:

# mysql -u root -p -e "SELECT @@datadir;"

Fase 5:crea un database MySQL per confermare la directory dei dati

Accedi a MariaDB, crea un nuovo database e quindi controlla /mnt/mysql-data :

# mysql -u root -p -e "CREATE DATABASE tecmint;"

Congratulazioni! Hai cambiato con successo la directory dei dati per MySQL o MariaDB.

Riepilogo

In questo post, abbiamo discusso di come modificare la directory dei dati in un server MySQL o MariaDB in esecuzione su distribuzioni CentOS/RHEL 7 e Ubuntu/Debian.

Hai domande o commenti su questo articolo? Sentiti libero di farcelo sapere utilizzando il modulo sottostante:siamo sempre felici di sentirti!