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!