Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да стартирате множество MySQL екземпляри на една и съща машина

Понякога може да се наложи да стартирате множество MySQL екземпляри на един сървър. Например, може да се наложи да тествате различни MySQL екземпляри за поставяне, тестване и производство. В тази статия ще разгледаме как да стартирате множество екземпляри на MySQL на една и съща машина, но различни портове, с различни регистрационни файлове и конфигурационни параметри.


Как да стартирате множество MySQL екземпляри на една и съща машина

Ето стъпките за стартиране на множество MySQL екземпляри на една и съща машина.


1. Отворете конфигурационния файл на MySQL

Обикновено ще намерите конфигурационния файл на MySQL в /etc/mysql/my.cnf . Отворете терминала и изпълнете следната команда, за да отворите конфигурационния файл на MySQL.

$ sudo vi /etc/mysql/my.cnf


2. Конфигурирайте множество MySQL екземпляри

Ще намерите конфигурацията по подразбиране на MySQL нещо подобно на това, което е показано по-долу.

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

Копирайте + поставете горния блок код под него в същия файл. Заменете [mysqld] с [mysqld1] и променете стойността на порта на 3307. Това ще направи новия екземпляр mysqld1 стартирайте на различен порт 3307 с различно име на процес mysqld1. По същия начин променете имената на файловете на променливите pid-файл, сокет и datadir, както е показано по-долу.

Уверете се, че копирате папката datadir за всеки екземпляр по-долу. Също така се уверете, че потребителят mysql потребителят има права за достъп до него. Всеки екземпляр се нуждае от своя собствена директория с данни.

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

Сега mysqld1 ще работи като отделен екземпляр от mysqld

По същия начин можете да създадете повече екземпляри, както е показано по-долу

[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

Уверете се, че сте предоставили различен pid файл, сокет файл и директория с данни за всеки екземпляр и се уверете, че потребителят mysql има необходими разрешения за директория, тъй като mysql потребителят трябва да може да създава необходимите файлове и директории.


3. Управление на множество екземпляри

Можете да стартирате всеки екземпляр поотделно, като използвате mysqld команда по-долу. Заменете mysqlN с вашия избор на екземпляр (напр. mysql1, mysql2 и т.н.)

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

Ако по някаква причина горната конфигурация не работи за вас, копирайте файла my.cnf в /etc/my.cnf местоположение и опитайте отново. Понякога mysql не регистрира множество екземпляри, конфигурирани в /etc/mysql/my.cnf

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

Ако искате да влезете в конкретен екземпляр (например mysqld1) от командния ред, трябва да посочите местоположението на неговия файл на сокет с опция -S. В противен случай ще влезете в MySQL екземпляр по подразбиране.

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

Надяваме се, че тази статия ще ви помогне да конфигурирате и управлявате множество MySQL екземпляри на един и същ сървър.

Нуждаете се от инструмент за отчитане за MySQL? Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при импортиране на Python MySQLdb - Mac 10.6

  2. Как да вмъкнете няколко реда в една SQL заявка – въпрос за интервю на седмицата #069

  3. PHP mysql формат за вмъкване на дата

  4. Връщане на "последния" ред на всяка "група по" в MySQL

  5. Как работи NOT RLIKE в MySQL