le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Sui sistemi Linux, per impostazione predefinita MySQL (o MariaDB, un popolare fork di MySQL) non supporta direttamente l'esecuzione di più istanze MySQL sulla stessa macchina, con ciascuna istanza che utilizza una porta diversa e un sistema di password indipendente. Tuttavia, puoi ottenere questo risultato configurando più istanze MySQL (note anche come istanze multiple). Ciò di solito comporta la configurazione di porte, directory di dati, file di configurazione ed eventualmente autorizzazioni utente diverse per ciascuna istanza.
Ecco i passaggi di base per configurare più istanze MySQL:
Assicurati di avere un'installazione MySQL funzionante. Questa guida presuppone che tu stia utilizzando MySQL, ma se utilizzi MariaDB i passaggi sono molto simili.
Crea una nuova directory di dati per ogni istanza MySQL:
sudo mkdir -p /data/mysql1 /data/mysql2 | |
sudo chown -R mysql:mysql /data/mysql1 /data/mysql2 |
Qui/data/mysql1
E/data/mysql2
sono le directory dei dati di due istanze diverse.
Il file di configurazione predefinito per MySQL è solitamente/etc/my.cnf
(O/etc/mysql/my.cnf
, a seconda della distribuzione). È necessario creare un nuovo file di configurazione per ogni istanza.
sudo cp /etc/my.cnf /etc/mysql1.cnf | |
sudo cp /etc/my.cnf /etc/mysql2.cnf |
Modificare le seguenti sezioni di ciascun file di configurazione:
[mysqld]
Impostazioni nella sezionedatadir
per le directory dati appena create (ad es./data/mysql1
O/data/mysql2
)。port
(Ad esempio, la prima istanza utilizza 3306, la seconda istanza utilizza 3307).socket
percorsi, assicurandosi che siano unici.user
Elog_error
e altre opzioni per garantire che l'istanza venga eseguita in modo indipendente. Per le nuove istanze MySQL, è necessario inizializzare la directory dei dati.Questo di solito comporta la corsamysqld --initialize
Omysql_install_db
(A seconda della versione di MySQL). Tieni presente che ciò potrebbe sovrascrivere eventuali dati esistenti.
sudo mysqld --initialize --user=mysql --datadir=/data/mysql1 | |
sudo mysqld --initialize --user=mysql --datadir=/data/mysql2 |
È necessario scrivere uno script di avvio per ogni istanza o utilizzosystemd
file unit per gestirli. Questo è spesso complesso e deve essere personalizzato in base alle esigenze specifiche e all'ambiente di sistema.
È necessario utilizzare un approccio semplificatomysqld_safe
Oppure esegui direttamente dalla riga di comandomysqld
, ma questo non è adatto per ambienti di produzione.
Ogni istanza ha una password root predefinita dopo l'inizializzazione (MySQL 5.7.6 e versioni successive). È necessario impostare password e autorizzazioni utente indipendenti per ciascuna istanza.
--socket
E--port
opzioni).ALTER USER
istruzione per impostare la password di root.Assicurati di disporre di strategie di monitoraggio e backup per mantenere le tue molteplici istanze MySQL.