sql >> Databáze >  >> RDS >> Mysql

Jak spustit více instancí MySQL na stejném počítači

Někdy může být potřeba spustit více instancí MySQL na jednom serveru. Můžete například potřebovat otestovat různé instance MySQL pro staging, testování a produkci. V tomto článku se podíváme na to, jak spustit více instancí MySQL na stejném počítači, ale na různých portech, s různými protokolovacími soubory a konfiguračními parametry.


Jak spustit více instancí MySQL na stejném počítači

Zde jsou kroky ke spuštění více instancí MySQL na stejném počítači.


1. Otevřete konfigurační soubor MySQL

Konfigurační soubor MySQL obvykle najdete na /etc/mysql/my.cnf . Otevřete terminál a spusťte následující příkaz pro otevření konfiguračního souboru MySQL.

$ sudo vi /etc/mysql/my.cnf


2. Konfigurace více instancí MySQL

Výchozí konfigurace MySQL je podobná té, která je zobrazena níže.

[mysqld] 
user = mysql 
pid-file = /var/run/mysqld/mysqld.pid 
socket = /var/run/mysqld/mysqld.sock 
port = 3306 
datadir = /data/mysql/mysql

Zkopírujte a vložte výše uvedený blok kódu pod něj do stejného souboru. Nahradit [mysqld] s [mysqld1] a změňte hodnotu portu na 3307. Tím vytvoříte novou instanci mysqld1 běžet na jiném portu 3307 s jiným názvem procesu mysqld1. Podobně změňte názvy souborů proměnných pid-file, socket a datadir, jak je uvedeno níže.

Ujistěte se, že zkopírujete složku datadir pro každou instanci níže. Také se ujistěte, že uživatel mysql uživatel k němu má přístupová oprávnění. Každá instance potřebuje svůj vlastní datový adresář.

[mysqld1] 
user = mysql 
pid-file = /var/run/mysqld/mysqld1.pid 
socket = /var/run/mysqld/mysqld1.sock 
port = 3307 
datadir = /data/mysql/mysql1

Nyní mysqld1 poběží jako samostatná instance než mysqld

Podobně můžete vytvořit více instancí, jak je uvedeno níže

[mysqld2] 
user = mysql 
pid-file = /var/run/mysqld/mysqld2.pid 
socket = /var/run/mysqld/mysqld2.sock 
port = 3308 
datadir = /data/mysql/mysql2 
.... 
[mysqldN] 
user = mysql 
pid-file = /var/run/mysqld/mysqldN.pid 
socket = /var/run/mysqld/mysqldN.sock 
port = N 
datadir = /data/mysql/mysqlN

Ujistěte se, že pro každou instanci poskytujete jiný soubor pid, soubor soketu a datový adresář a zajistěte, aby uživatel mysql vyžaduje oprávnění k adresáři, protože mysql uživatel by měl být schopen vytvářet požadované soubory a adresáře.


3. Správa více instancí

Každou instanci můžete spustit samostatně pomocí mysqld příkaz níže. Nahraďte mysqlN s vaším výběrem instance (např. mysql1, mysql2 atd.)

mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN

Pokud vám z nějakého důvodu výše uvedená konfigurace nefunguje, zkopírujte soubor my.cnf do /etc/my.cnf umístění a zkuste to znovu. Někdy mysql nezaregistruje více instancí nakonfigurovaných na /etc/mysql/my.cnf

$ sudo cp /etc/mysql/my.cnf /etc/my.cnf

Pokud se chcete přihlásit do jakékoli konkrétní instance (např. mysqld1) z příkazového řádku, musíte zadat umístění souboru soketu pomocí volby -S. V opačném případě budete přihlášeni do výchozí instance MySQL.

mysql -u root -p -S /var/run/mysqld/mysqld1.sock

Doufejme, že vám tento článek pomůže nakonfigurovat a spravovat více instancí MySQL na stejném serveru.

Potřebujete nástroj pro vytváření sestav pro MySQL? Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. Jak funguje SQLite Min()

  2. Jak vložit JSONB do Postgresql s Pythonem?

  3. Získejte datum/čas z unixového časového razítka v SQLite

  4. Používání relačních databází MySQL na Gentoo