Понякога може да се наложи да стартирате множество 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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!