В данной инструкции мы запустим несколько баз данных Mysql на одном физическом сервере используя установленную версию Mysql-5.5. Запуск нескольких Mysql серверов на одном сервере бывает нужно для того, чтобы запустить репликацию на одном, либо дать доступ кому либо (програмист, друг, клиент) к отдельной чистой Mysql базе данных. Настройка базы проводится на операционной системе Debian GNU/Linux.
Нам необходимо создать новую директорию для данных и лог файлов. Также нужно назначить правильные права на эти папки:
mkdir /var/lib/mysql2 chown -R mysql:mysql /var/lib/mysql2/ mkdir /var/log/mysql2 chown -R mysql:mysql /var/log/mysql2
Далее нам необходимо создать новый конфигурационный файл. Мы можем скопировать существующий конфиг и изменить необходимые значения. В моём дистрибутиве Debian конфигурационный файл лежит в /etc/mysql/my.cnf:
cp -R /etc/mysql/ /etc/mysql2
Далее нам необходимо отредактировать конфигурационный файл и внести изменения как минимум в параметры mysql port (по умолчанию 3306), pid и socket, и также директории данных и логов:
sed -i 's/3306/3307/g' /etc/mysql2/my.cnf sed -i 's/mysqld.sock/mysqld2.sock/g' /etc/mysql2/my.cnf sed -i 's/mysqld.pid/mysqld2.pid/g' /etc/mysql2/my.cnf sed -i 's/var\/lib\/mysql/var\/lib\/mysql2/g' /etc/mysql2/my.cnf sed -i 's/var\/log\/mysql/var\/log\/mysql2/g' /etc/mysql2/my.cnf
Проводим инициализацию чистой базы данных:
mysql_install_db --user=mysql --datadir=/var/lib/mysql2/
Запускаем новую копию mysql сервера:
mysqld_safe --defaults-file=/etc/mysql2/my.cnf &
Подключиться к ней можно используя команды:
mysql -S /var/run/mysqld/mysqld2.sock
либо:
mysql -h 127.0.0.1 -P 3307
Если работа данной базы больше не нужна, останавливаем её выполнив команду:
mysqladmin -S /var/run/mysqld/mysqld2.sock shutdown
Обязательно используйте "127.0.0.1" вместо "localhost". Иначе вместо подключения к нужному порту будет задействован сокет по умолчанию. А это будет совсем не тот экземпляр сервера, который Мы создали.
Создаем пароль root для второй версии mysql базы, для этого выполним команду предварительно заменив pass_mysql на свой пароль базы данных:
mysqladmin --host=127.0.0.1 --port=3307 -u root password 'pass_mysql'
Подключаемся к базе используя пароль root:
mysql -h 127.0.0.1 -P 3307
-u root -ppass_mysql
Чтобы сменить пароль пользователя root базы данных mysql выполнив команду в консоли базы данных:
update user set password=PASSWORD("new_pass") where User='root';
Теперь добавим запуск и остановку второй версии mysql, для этого необходимо внести в файл запуска mysql:
vi /etc/init.d/mysql
было:
... # Start MySQL! /usr/bin/mysqld_safe > /dev/null 2>&1 & ...
стало:
... # Start MySQL-1! /usr/bin/mysqld_safe > /dev/null 2>&1 & # Start MySQL-2! /usr/bin/mysqld_safe --defaults-file=/etc/mysql2/my.cnf > /dev/null 2>&1 & ...
было:
'stop') # * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible # at least for cron, we can rely on it here, too. (although we have # to specify it explicit as e.g. sudo environments points to the normal # users home and not /root) log_daemon_msg "Stopping MySQL database server" "mysqld" if ! mysqld_status check_dead nowarn; then set +e shutdown_out=`$MYADMIN shutdown 2>&1`; r=$?
стало:
'stop') # * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible # at least for cron, we can rely on it here, too. (although we have # to specify it explicit as e.g. sudo environments points to the normal # users home and not /root) log_daemon_msg "Stopping MySQL database server" "mysqld" if ! mysqld_status check_dead nowarn; then set +e # Shutdown MySQL-1! shutdown_out=`$MYADMIN shutdown 2>&1`; r=$? # Shutdown MySQL-2 mysqladmin -S /var/run/mysqld/mysqld2.sock shutdown -ppass_mysql_root > /dev/null 2>&1
Для проверки перегружаем mysql базу выполнив команду:
/etc/init.d/mysql restart
Подключаемся к второму серверу выполнив команду:
mysql -h 127.0.0.1 -P 3307 -u root -ppass_mysql
Запуск и конфигурация второго сервера баз данных Mysql выполнена, на этом примере Вы можете запустить нужное Вам количество сереров, которое только может Вам понадобится и которое выдержит Ваш физический сервер.
Сделаем небольшой перерыв и посмотрим видео как можно развести костер в глубоком снегу, мало ли когда понадобится такое знание :)
Add new comment