Dopo aver installato i componenti di a Stack LAMP su un server CentOS/RHEL 7, ci sono un paio di cose che potresti voler fare.
Alcuni di loro hanno a che fare con aumentare la 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'uso previsto del server di database, potremmo voler modificare l'impostazione predefinita dati rubrica (/var/lib/mysql
) in una posizione diversa. Questo è il caso in cui si prevede che una directory di questo tipo cresca a causa dell'elevato utilizzo.
Altrimenti, il filesystem in cui /var
è memorizzato può crollare a un certo punto causando il fallimento 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 Maria DB, i concetti spiegati e i passaggi intrapresi in questo articolo si applicano sia a MySQL e per Maria DB se non specificato diversamente.
Nota: Assumeremo 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:
Per iniziare, è opportuno identificare la directory dei dati corrente utilizzando il seguente comando. Non dare per scontato che sia ancora /var/lib/mysql
poiché potrebbe essere stato modificato in passato.
# mysql -u root -p -e "SELECT @@datadir;"
Dopo aver inserito la password MySQL, l'output dovrebbe essere simile a.
Per evitare il danneggiamento dei dati, interrompere il servizio se è attualmente in esecuzione prima di procedere. Usa il sistema comandi ben noti per farlo:
Sul sistemaD # systemctl stop mariadb. # systemctl è attivo mariadb Su SysVInit # servizio mysqld stop. # service mysqld status OPPURE # service mysql stop. # stato mysql del servizio.
Se il servizio è stato disattivato, l'output dell'ultimo comando dovrebbe essere il seguente:
Quindi copia ricorsivamente il contenuto di /var/lib/mysql
a /mnt/mysql-data
preservando le autorizzazioni e i timestamp originali:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data.
Modifica il file di configurazione (mio.cnf
) per indicare la nuova directory dati (/mnt/mysql-data
in questo caso).
# vi /etc/my.cnf. O. # vi /etc/mysql/my.cnf.
Trova il [mysqld]
e [cliente]
sezioni e apportare le seguenti modifiche:
Sotto [mysqld]: datadir=/mnt/mysql-data. socket=/mnt/mysql-data/mysql.sock Sotto [cliente]: porta=3306. socket=/mnt/mysql-data/mysql.sock.
Salva le modifiche e poi procedi con il passaggio successivo.
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.
Sul sistemaD # systemctl stop mariadb. # systemctl è attivo mariadb Su SysVInit # servizio mysqld stop. # service mysqld status OPPURE # service mysql stop. # stato mysql del servizio.
Ora usa lo stesso comando di in Passo 1 per verificare la posizione della nuova directory dei dati:
# mysql -u root -p -e "SELECT @@datadir;"
Accedi a MariaDB, crea un nuovo database e poi controlla /mnt/mysql-data
:
# mysql -u root -p -e "CREA DATABASE tecmint;"
Congratulazioni! Hai cambiato con successo la directory dei dati per MySQL o MariaDB.
In questo post, abbiamo discusso su 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!