Come cambiare la directory dei dati MySQL/MARIADB su Ubuntu

Come cambiare la directory dei dati MySQL/MARIADB su Ubuntu
Per impostazione predefinita, i server di database SQL MySQL/MARIADB mettono i loro dati sul filesystem root. Questo non è quello che vuoi nei tuoi server di produzione per la maggior parte del tempo. Potresti voler inserire i dati del server di database su un disco rigido o una partizione SSD diversa.

In questo articolo, ti mostrerò come modificare la directory di dati predefinita del database MySQL/MARIADB su Ubuntu. Quindi iniziamo.

Installazione di mysql/mariadb su ubuntu:

I pacchetti di database MySQL/MariaDB sono disponibili nel repository di pacchetti Ubuntu ufficiali. Quindi, puoi facilmente installarlo da lì utilizzando il gestore dei pacchetti APT.

Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:

$ sudo apt update

Ora, se si desidera installare MySQL Database Server, eseguire il seguente comando:

$ sudo apt installa mysql-server mysql-client

Se si desidera installare MariaDB Database Server, eseguire il seguente comando:

$ sudo apt Installa MariaDB-Server MariaDB-Client

In questo articolo installerò MariaDB Database Server. Puoi installare mysql se vuoi.

Una volta eseguito il comando di installazione richiesto, è necessario vedere il seguente prompt. Premere y e poi premere continuare.

Il server di database MySQL/MariaDB dovrebbe essere installato.

Trovare la directory di dati MySQL/MariaDB predefinita:

È possibile trovare la directory di dati predefinita del database MySQL/MARIADB molto facilmente con il grep O egrep comando.

$ sudo grep -r - -color datadir/etc/mysql/*

Come puoi vedere, la directory di dati predefinita per il server di database MARIADB è /var/lib/mysql. Il file di configurazione del server di database MariaDB è /etc/mysql/mariadb.conf.d/50-server.Cnf. Se si desidera modificare la directory di dati predefinita del server di database MARIADB, è necessario modificarla nel file di configurazione /etc/mysql/mariadb.conf.d/50-server.Cnf.

La directory di dati predefinita per il server di database MySQL è /var/lib/mysql anche. Ma il file di configurazione è diverso per il server di database MySQL. Per MySQL, il file di configurazione è /etc/mysql/mysql.conf.d/mysqld.Cnf. Se hai installato MySQL Database Server, quindi per modificare la directory di dati predefinita, è necessario modificare questo file di configurazione.

Nelle sezioni successive, ti mostrerò come preparare una partizione disco rigido o SSD per la directory di dati MySQL/MARIADB e modificare la directory di dati predefinita.

Preparazione della directory dei dati MySQL/MARIADB:

In questa sezione, ti mostrerò come preparare la partizione del disco rigido o SSD per la directory di dati MySQL/MARIADB.

È possibile elencare tutti i dischi rigidi o SSD installati sul tuo computer con il seguente comando:

$ sudo lsblk | disco grep

Tutti i dischi rigidi e gli SSD installati dovrebbero essere elencati. sdb è il disco rigido in cui voglio mettere i miei dati MySQL/MARIADB. Il tuo dovrebbe essere diverso. Quindi, sostituiscilo con il tuo da ora in poi.

Ora, devi fare una nuova partizione sul disco rigido sdb con fdisk.

NOTA: In questa sezione, non passerò attraverso i dettagli su come funziona FDisk. Per imparare a partizionare i dischi rigidi o gli SSD con FDisk, leggi l'articolo come utilizzare FDisk in Linux.

Per fare una partizione sul disco rigido sdb, Aprilo con FDisk come segue:

$ sudo fdisk /dev /sdb

Ora, premere N e poi premere .

Ora, premere P e poi premere .

Ora, premere .

Premere .

Premere . Dovrebbe essere creata una nuova partizione.

Ora, premere w e premere .

Diciamo, la partizione del disco rigido che desideri utilizzare come directory di dati MySQL/MARIADB è /dev/sdb1.

Ora, formatta la partizione /dev/sdb1 con il seguente comando:

$ sudo mkfs.ext4 -l db_data /dev /sdb1

Ora, crea una nuova directory /db per moutning il /dev/sdb1 partizione.

$ sudo mkdir /db

/db sarà la nuova directory di dati di MySQL/MariaDB.

Ora aperto /etc/fstab file con il seguente comando:

$ sudo nano /etc /fstab

Ora, aggiungi la riga seguente alla fine del file e salva il file premendo + X seguito da y E .

/dev /sdb1 /db ext4 predefiniti 0 0

Ora riavvia il tuo computer con il seguente comando:

$ sudo riavvia

Una volta che il tuo computer si avvia, /dev/sdb1 dovrebbe essere montato /db Come puoi vedere nello screenshot qui sotto.

$ df -h /db

Ora, cambia il proprietario e il gruppo del /db directory a mysql con il seguente comando:

$ sudo chown mysql: mysql /db

Ora, devi fermare il servizio di database MySQL/MARIADB e copiare tutti i file dalla directory di dati predefinita /var/lib/mysql alla nuova directory dei dati /db.

Se stai usando MariaDB, ferma il servizio MariaDB con il seguente comando:

$ sudo systemctl stop mariadb

Se stai usando MySQL, ferma il servizio MySQL con il seguente comando:

$ sudo systemctl ferma mysql

Ora, copia tutti i contenuti della directory di dati predefiniti /var/lib/mysql alla nuova directory dei dati /db con il seguente comando:

$ sudo rsync -avzh/var/lib/mysql//db

Tutto il contenuto di /var/lib/mysql La directory dovrebbe essere copiata nella nuova directory /db.

/db La directory è ora preparata per essere la nuova directory di dati MySQL/MARIADB.

Configurazione di AppAMor:

Ora, devi configurare AppAmor per consentire /db essere una directory di dati MySQL/MARIADB.

Per fare ciò, modifica il file di alias Apparmor /etc/AppAmor.d/sunables/alias come segue:

$ sudo nano /etc /Apparmor.d/sunables/alias

Ora, aggiungi la riga seguente alla fine del file e salvalo premendo + X seguito da y E .

alias /var /lib /mysql -> /db,

Ora, riavvia il servizio Apparmor con il seguente comando:

$ sudo systemctl riavvia apparmor

Ora, sei pronto a modificare la directory dei dati di MySQL/MARIADB.

Modifica della directory dei dati MySQL/MARIADB:

Per modificare la directory dei dati da /var/lib/mysql A /db, Devi modificare il file di configurazione richiesto a seconda che tu stia utilizzando MySQL/MARIADB.

Se stai usando MariaDB, allora il file di configurazione che devi modificare è /etc/mysql/mariadb.conf.d/50-server.Cnf.

Se stai usando MySQL, allora il file di configurazione da modificare è /etc/mysql/mysql.conf.d/mysqld.Cnf.

Ora, modifica il file di configurazione richiesto a seconda che tu stia utilizzando MySQL/MARIADB come segue:

MariaDB:

$ sudo nano/etc/mysql/mariadb.conf.d/50-server.Cnf

Mysql:

$ sudo nano/etc/mysql/mysql.conf.d/mysqld.Cnf

Ora, trova la linea contrassegnata nello screenshot qui sotto.

Cambiare il Datadir A /db Come mostrato nello screenshot seguente. Quindi salva il file premendo + X seguito da y E .

Ora, inizia il servizio MySQL/MariaBD con il seguente comando:

MariaDB:

$ sudo systemctl avvia mariadb

Mysql:

$ sudo systemctl avvia mysql

Testing di mysql/mariadb:

Ora, prova a connetterti al server MySQL/MARIADB come segue:

$ sudo mysql -u root -p

Quindi, digita la password del server MySQL/MARIADB e premere .

Dovresti essere effettuato l'accesso alla shell Mysql/Mariadb come radice Utente del database. È un'indicazione che funziona.

Ma, solo per essere sicuro, digita la seguente query per trovare quale directory MySQL/MARIADB sta attualmente utilizzando come directory di dati.

SQL> Select @@ Datadir;

Come puoi vedere, la directory di dati corrente è /db Proprio come ho configurato.

Quindi, è così che cambi la directory di dati MySQL/MARIADB su Ubuntu. Grazie per aver letto questo articolo.