sql >> Database teknologi >  >> RDS >> Mysql

Sådan kører du flere MySQL-forekomster på samme maskine

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!

  1. Online vs offline backup

  2. MySQL TIMEDIFF() vs TIMESTAMPDIFF():Hvad er forskellen?

  3. Anmodningen mislykkedes, eller svarede tjenesten ikke rettidigt?

  4. SQL-referencetabel:Sådan oprettes og skrives grundlæggende forespørgsler