Sono necessari solo pochi passaggi per configurare più server su un sistema. Innanzitutto, il file di configurazione per MySQL dovrà essere modificato. Sarà necessario inserire un gruppo separato di opzioni per ciascun server. Come minimo, a ogni server dovrebbe essere assegnata una porta TCP/IP univoca e un file socket diverso.
I gruppi di server per più server nel file di configurazione sono identificati da un prefisso mysqld seguito da un suffisso numerico. Ad esempio, il primo server potrebbe essere identificato da un'intestazione di gruppo come [mysqld1], potresti iniziare con 0 o un altro numero. Il secondo server potrebbe essere [mysqld2]. I numeri non devono essere sequenziali, di per sé. I numeri possono essere saltati. Tutte le opzioni che possono essere fornite per un gruppo [mysqld] possono essere fornite a qualsiasi server aggiuntivo. Ciò consente di modificare le opzioni del server per soddisfare eventuali requisiti speciali che potrebbero essere necessari per un database. Di seguito sono riportati i contenuti di un /etc/my.cnf file configurato per tre server.
Nota :È estremamente importante notare che ogni istanza dovrebbe avere anche la propria datadir. Come minimo, a ogni server dovrebbe essere assegnata una porta TCP/IP univoca e/o un file socket diverso.# vi /etc/my.cnf [mysqld_multi] mysqld = /usr/local/bin/mysqld_safe [mysqld0] port = 3306 socket = /tmp/mysql.sock0 pid-file = /usr/local/mysql/server0/ user = mysql0 datadir = /usr/local/mysql/server0 [mysqld1] port = 3307 socket = /tmp/mysql.sock1 pid-file = /usr/local/mysql/server1/ user = mysql1 datadir = /usr/local/mysql/server1 [mysqld2] port = 3308 socket = /tmp/mysql.sock2 pid-file = /usr/local/mysql/server2/ user = mysql2 datadir = /usr/local/mysql/server2
Innanzitutto, nota che non esiste alcun gruppo etichettato [mysqld] . Ciò confonderebbe le cose. In questo file di configurazione, ogni server utilizza una porta diversa. Ciò richiederà modifiche a tutti gli script che accedono al server. La porta dovrà essere fornita in modo che la porta predefinita (3306 ) non viene utilizzato. Il primo server sopra utilizza la porta predefinita. In questo esempio, per ciascun server viene nominato un utente del file system separato. Questo non è necessario. Tuttavia, può essere utile per un migliore controllo della sicurezza. Ovviamente richiederà la creazione di ogni utente di sistema a livello di file system.
L'ultima opzione impostata in ogni gruppo del file di configurazione sopra è la directory dei dati per ogni server. I server non possono condividere la stessa directory di dati. Pertanto, ciò richiederà la creazione di una directory separata sul file system. Assicurati di cambiare la proprietà delle directory di dati al rispettivo utente di sistema (ad esempio, mysql0).
Una volta che il file di configurazione è stato impostato correttamente, gli utenti del sistema creati e le relative directory sono a posto, è possibile avviare i server. Per farlo facilmente, usa mysqld_multi sceneggiatura. Questo script leggerà il file di configurazione di MySQL e cercherà i gruppi di server seguendo la convenzione di denominazione menzionata in precedenza. Per avviare tutti i server, è necessario immettere quanto segue dalla riga di comando:
$ mysqld_multi start
Questa riga avvierà un'istanza separata di mysqld_safe per ogni gruppo di server elencato nel file di configurazione. Per inciso, per utilizzare un file di configurazione speciale per mysqld_multi, basta aggiungere il "–config-file =file opzione ” prima del parametro di avvio. Per arrestare tutti i server, sostituire il parametro start con stop. Per i rapporti sullo stato del server, utilizzare il parametro del rapporto. Per avviare un server specifico, fornire il numero identificativo del server dopo il parametro di avvio. Ad esempio, per arrestare il server etichettato [mysqld2] nel file di configurazione mostrato in precedenza, è necessario inserire quanto segue:
$ mysqld_multi stop 2
Il prefisso mysqld è omesso. È possibile nominare un intervallo di server fornendo il numero del primo server, seguito da un trattino, e quindi il numero dell'ultimo (ad es. 2-5). I server possono essere elencati individualmente separando il loro identificatore con virgole (ad es. 2, 4). Inoltre, è possibile utilizzare una combinazione di entrambi i metodi (ad es. 2, 4-7).
Per un insieme più lungo di esempi su come costruire un file di configurazione, inserisci quanto segue dalla riga di comando:
$ mysqld_multi --example