Nogle gange skal du muligvis køre flere MySQL-instanser på en enkelt server. For eksempel kan det være nødvendigt at teste forskellige MySQL-instanser til iscenesættelse, test og produktion. I denne artikel vil vi se på, hvordan man kører flere MySQL-instanser på samme maskine, men forskellige porte, med forskellige logfiler og konfigurationsparametre.
Sådan kører du flere MySQL-forekomster på samme maskine
Her er trinene til at køre flere MySQL-instanser på samme maskine.
1. Åbn MySQL-konfigurationsfilen
Typisk vil du finde MySQL-konfigurationsfilen på /etc/mysql/my.cnf . Åbn terminal og kør følgende kommando for at åbne MySQL-konfigurationsfilen.
$ sudo vi /etc/mysql/my.cnf
2. Konfigurer flere MySQL-instanser
Du vil finde standard MySQL-konfigurationen noget, der ligner det, der er vist nedenfor.
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 datadir = /data/mysql/mysql
Kopier+Indsæt ovenstående kodeblok under den i den samme fil. Erstat [mysqld] med [mysqld1] og ændre portværdien til 3307. Dette vil gøre den nye instans mysqld1 køre på en anden port 3307 med et andet procesnavn mysqld1. På samme måde kan du ændre filnavne på pid-fil-, socket- og datadir-variabler som vist nedenfor.
Sørg for at kopiere datadir-mappen for hver forekomst nedenfor. Sørg også for, at brugeren mysql brugeren har adgangstilladelser til det. Hver forekomst har brug for sin egen datamappe.
[mysqld1] user = mysql pid-file = /var/run/mysqld/mysqld1.pid socket = /var/run/mysqld/mysqld1.sock port = 3307 datadir = /data/mysql/mysql1
Nu mysqld1 vil køre som en separat instans end mysqld
På samme måde kan du oprette flere forekomster som vist nedenfor
[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
Sørg for, at du angiver forskellig pid-fil, socket-fil og data-dir for hver forekomst, og sørg for, at brugeren mysql har krævet bibliotekstilladelser, fordi mysql brugeren skal være i stand til at oprette nødvendige filer og mapper.
3. Administrer flere forekomster
Du kan starte hver instans separat ved at bruge mysqld kommando nedenfor. Erstat mysqlN med dit valg af instans (f.eks. mysql1, mysql2 osv.)
mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN
Hvis ovenstående konfiguration af en eller anden grund ikke virker for dig, så kopier filen my.cnf til /etc/my.cnf placering og prøv igen. Nogle gange registrerer mysql ikke flere forekomster konfigureret på /etc/mysql/my.cnf
$ sudo cp /etc/mysql/my.cnf /etc/my.cnf
Hvis du vil logge ind på en specifik instans (f.eks. mysqld1) fra kommandolinjen, skal du angive dens socket-filplacering med -S-indstillingen. Ellers vil du blive logget ind på standard MySQL-instansen.
mysql -u root -p -S /var/run/mysqld/mysqld1.sock
Forhåbentlig hjælper denne artikel dig med at konfigurere og administrere flere MySQL-instanser på samme server.
Har du brug for et rapporteringsværktøj til MySQL? Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!