Soms moet u mogelijk meerdere MySQL-instanties op één server uitvoeren. Het kan bijvoorbeeld nodig zijn om verschillende MySQL-instanties te testen voor enscenering, testen en productie. In dit artikel zullen we bekijken hoe u meerdere MySQL-instanties op dezelfde machine kunt uitvoeren, maar op verschillende poorten, met verschillende logbestanden en configuratieparameters.
Meerdere MySQL-instanties op dezelfde machine uitvoeren
Hier zijn de stappen om meerdere MySQL-instanties op dezelfde machine uit te voeren.
1. MySQL-configuratiebestand openen
Meestal vindt u het MySQL-configuratiebestand op /etc/mysql/my.cnf . Open terminal en voer de volgende opdracht uit om het MySQL-configuratiebestand te openen.
$ sudo vi /etc/mysql/my.cnf
2. Configureer meerdere MySQL-instanties
U zult de standaard MySQL-configuratie aantreffen die lijkt op wat hieronder wordt weergegeven.
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 datadir = /data/mysql/mysql
Kopieer + plak het bovenstaande codeblok eronder in hetzelfde bestand. Vervang [mysqld] met [mysqld1] en verander de poortwaarde in 3307. Hierdoor wordt de nieuwe instantie mysqld1 draaien op een andere poort 3307 met een andere procesnaam mysqld1. Verander op dezelfde manier de bestandsnamen van pid-file, socket en datadir variabelen zoals hieronder getoond.
Zorg ervoor dat u de datadir-map voor elke onderstaande instantie kopieert. Zorg er ook voor dat gebruiker mysql gebruiker heeft er toegangsrechten voor. Elke instantie heeft zijn eigen gegevensmap nodig.
[mysqld1] user = mysql pid-file = /var/run/mysqld/mysqld1.pid socket = /var/run/mysqld/mysqld1.sock port = 3307 datadir = /data/mysql/mysql1
Nu mysqld1 wordt uitgevoerd als een aparte instantie dan mysqld
Op dezelfde manier kunt u meer instanties maken, zoals hieronder weergegeven
[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
Zorg ervoor dat u voor elke instantie een ander pid-bestand, socketbestand en gegevensmap opgeeft en zorg ervoor dat gebruiker mysql heeft directory-machtigingen nodig omdat de mysql de gebruiker moet de vereiste bestanden en mappen kunnen maken.
3. Beheer meerdere instanties
U kunt elke instantie afzonderlijk starten met mysqld onderstaande opdracht. Vervang mysqlN met uw instantiekeuze (bijv. mysql1, mysql2, enz.)
mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN
Als de bovenstaande configuratie om de een of andere reden niet voor u werkt, kopieer dan het bestand my.cnf naar /etc/my.cnf locatie en probeer het opnieuw. Soms registreert mysql niet meerdere instanties die zijn geconfigureerd op /etc/mysql/my.cnf
$ sudo cp /etc/mysql/my.cnf /etc/my.cnf
Als u zich wilt aanmelden bij een specifieke instantie (bijv. mysqld1) vanaf de opdrachtregel, moet u de locatie van het socketbestand opgeven met de optie -S. Anders wordt u aangemeld bij de standaard MySQL-instantie.
mysql -u root -p -S /var/run/mysqld/mysqld1.sock
Hopelijk helpt dit artikel je bij het configureren en beheren van meerdere MySQL-instanties op dezelfde server.
Een rapportagetool voor MySQL nodig? Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!