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!