Condivisione della tecnologia

Come aprire più database MySQL in Linux e impostare password e porte individualmente

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:

1. Preparazione

Assicurati di avere un'installazione MySQL funzionante. Questa guida presuppone che tu stia utilizzando MySQL, ma se utilizzi MariaDB i passaggi sono molto simili.

2. Creare una nuova directory di dati

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/mysql1E/data/mysql2sono le directory dei dati di due istanze diverse.

3. Copiare e modificare il file di configurazione

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.

  • Copia il modello del profilo (se non esiste, puoi crearlo dalla configurazione predefinita):
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 sezionedatadirper le directory dati appena create (ad es./data/mysql1O/data/mysql2)。
    • Imposta diversoport(Ad esempio, la prima istanza utilizza 3306, la seconda istanza utilizza 3307).
    • Potrebbe anche essere necessario impostaresocketpercorsi, assicurandosi che siano unici.
    • (facoltativo) impostazioniuserElog_errore altre opzioni per garantire che l'istanza venga eseguita in modo indipendente.

4. Inizializzare la directory dei dati (se non già inizializzata)

Per le nuove istanze MySQL, è necessario inizializzare la directory dei dati.Questo di solito comporta la corsamysqld --initializeOmysql_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

5. Avvia l'istanza MySQL

È 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_safeOppure esegui direttamente dalla riga di comandomysqld, ma questo non è adatto per ambienti di produzione.

6. Imposta password e autorizzazioni

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.

  • Accedi a ciascuna istanza (utilizzando--socketE--portopzioni).
  • utilizzoALTER USERistruzione per impostare la password di root.
  • Crea un nuovo utente e autorizzalo.

7. Manutenzione e monitoraggio

Assicurati di disporre di strategie di monitoraggio e backup per mantenere le tue molteplici istanze MySQL.

Avviso

  • I passaggi precedenti rappresentano una panoramica di alto livello e potrebbe essere necessario adattarli al proprio ambiente specifico.
  • L'esecuzione di più istanze MySQL può aumentare la complessità del sistema e il consumo di risorse.
  • Assicurati che il firewall del tuo sistema e la configurazione di rete consentano l'accesso a ciascuna istanza dalla porta appropriata.