Modifica della directory di dati MySQL in un ambiente UNIX o simile
Attieniti alla seguente procedura per modificare la tua directory di dati MySQL:
-
Accedi al server utilizzando PuTTY o il tuo cliente preferito.
Se stai utilizzando una partizione dedicata per la directory dei dati, assicurati di montare la nuova partizione al posto della directory dei dati originale dopo aver copiato i dati. Il montaggio di una nuova partizione salva modifiche alla configurazione non standard con cui alcune applicazioni potrebbero non funzionare.
-
Chiudere
mysqld
(MySQL daemon). Il processo per avviare e arrestare il daemon può differire tra diversi sistemi operativi e distribuzioni. MySQL deve essere arrestato durante qualsiasi processo che interessa direttamente le file raw./etc/init.d/mysql stop
OPPURE
/etc/init.d/mysqld, /etc/init.d/mysql-server, /usr/loca/etc/init.d/mysql, /opt/lamp…
-
Esegui il backup del tuo database prima di effettuare una qualsiasi modifica. Assicurati che il MySQL il demone non è in esecuzione quando si eseguono copie dirette dei file di database non elaborati.
Se usi cPanel sul server, fermati cPanel ( TailWatch e chkservd) prima del riavvio del demone. È possibile creare un file temporaneo /etc/chkserv.d/mysqlisevil
fermare chkservd
dal riavvio del servizio. Se non si ha familiarità
con rsync, è possibile utilizzare qualsiasi altro strumento per creare il backup.
rsync -vaP /var/lib/mysql/ /var/lib/mysql.'date +%s'
-
Crea la directory dei dati e fornisci l'appartenenza all'utente MySQL (o a qualsiasi utente specificato nel tuo file delle opzioni globali 'my.cnf'). In questo esempio, viene utilizzata l'ubicazione
/var/lib/mysql-data
, ma puoi utilizzare qualsiasi ubicazione desideri. Se stai aggiungendo un disco o un dispositivo logico appositamente per questo scopo, devi aggiungere anche la voce in/etc/fstab
e montare la directory prima di procedere.chown mysql:mysql /var/lib/mysql-data
-
Crea una copia finale della directory originale nella nuova MySQL data directory (assicuratevi di mantenere il file finale
/
alla fine della prima directory):rsync -vaP /var/lib/mysql/ /var/lib/mysql-data
-
Assicurati che la nuova directory dei dati abbia la proprietà corretta, ovvero quella predefinita MySQL utente e gruppo o l'utente specificato nel tuo ' my.cnf'file delle opzioni globali. Se non sei sicuro, puoi utilizzare il seguente comando per l'appartenenza ricorrente della gerarchia completa al gruppo o all'utente MySQL.
chown -R mysql:mysql /var/lib/mysql-data
Utente MySQL deve disporre dell'autorizzazione completa (rwx) per le cartelle del database e dell'autorizzazione di lettura/scrittura per i file di registro, bin, dati, indice e modulo.
Normalmente, le cartelle del database dispongono di un'autorizzazione di 700 (drwx------) e sono di proprietà di mysql:mysql quando sono in un ambiente host condiviso. L'autorizzazione può essere configurata più liberamente con 755 (drwxr-xr-x) in un ambiente dedicato.
-
Aggiorna il tuo file di configurazione '/etc/my.cnf' in modo che punti alla nuova directory dei dati.
Assicurati di eseguire il backup di tutto prima di apportare modifiche al file di configurazione.
cp -vp /etc/my.cnf /etc/my.cnf.'date +%s'
vi /etc/my.cnf
-
Sostituisci ogni istanza di '/var/lib/mysql' con '/var/lib/mysql-data'. Se non hai un file
datadir
voce, quindi inserirla all'interno di [mysqld] stanza.[mysqld]
user = mysql
datadir = /var/lib/mysql-data
socket = /var/lib/mysql-datal/mysql.sock
-
Alcune applicazioni dispongono di configurazione personalizzata e questo documento non può coprirle. È risaputo che alcuni script riscontrano un errore se la directory dei dati non è /var/lib/mysql. Pertanto, viene utilizzato un collegamento simbolico per puntare alla nuova posizione.
mv -v /var/lib/mysql /var/lib/mysql.orig
ln -s /var/lib/mysql-data /var/lib/mysql
Se non vuoi creare il collegamento, assicurati di cambiare il campo ' mysql.default'_socket e ' mysqli.default'_presa in' php.ini' e fermarsi e ricominciare completamente Apache.
- Avvia il daemon MySQL.
/etc/init.d/mysql start
- Verifica che MySQL stia funzionando. Se MySQL non risponde, controlla i log degli errori. Ripristina le modifiche se necessario.
mysqladmin ping