Как залить сервер MySQL на хостинг и не ссориться с соседями
От автора: советую вам быть осторожнее с администраторами БД. Один мой знакомый поругался с таким «спецом». А все началось с того, что он спросил у него, как залить сервер MySQL на хостинг. В результате «неадекватный» админ залил ему всю квартиру, так как жил на этаже сверху. Не знаю, специально или нет. Но лучше не рисковать, и самому научиться заливать серверы, а не соседей.
Перенос всего MySQL
Прежде всего, для понимания всего процесса «телепортации» давайте разберемся, что такое сервер MySQL. Он представляет собой коллекцию БД, размещенных на одном дисковом пространстве и объединенных между собой определенными настройками доступа к ним.
Другими словами, сервер БД – это все базы, для которых заданы определенные привилегии конкретных пользователей, которые обладают этими правами лишь в масштабах данного «объединения».
То есть пользователь, который обладает правами администратора на текущем сервере не сможет реализовать свои привилегии на другом. Получается, что сервер – это самостоятельная и самая высшая единица иерархии в MySQL.
Перед тем, как залить сервер на MySQL, нужно понять, что представляет собой ядро сервера БД и где оно находится. Будет логичным предположить, что в ядре хранятся все настройки текущего экземпляра СУБД. Поэтому, чтобы успешно перенесли копию сервера на другую площадку (хостинг), сначала требуется создать дубликат его ядра.
Сердцем любого экземпляра MySQL является одноименная системная база данных. В ней записаны и хранятся все настройки сервера СУБД. В том числе и сведения об учетных записях, их привилегиях.

Перед тем, как залить MySQL на хостинг Samp, нам нужно скопировать все базы данных, которые хранятся на текущем сервере. Это можно сделать средствами командной строки. Но упростим себе жизнь, и воспользуемся встроенным инструментарием phpMyAdmin.
Заходим в программу. После этого, не выбирая ни одну из БД в списке слева, переходим в раздел основного меню «Экспорт».

Мы попадаем в окно параметров «Экспорт баз с текущего сервера». В подразделе «Способ экспорта» отметьте «Обычный». После чего раскроются дополнительные настройки процесса переноса. В следующем пункте можно отметить, какие базы следует экспортировать.

Ниже в подразделе «Вывод» выберите вариант «Сохранить вывод в файл». Остальные настройки оставьте без изменения. Жмите «Ок», и дубликат сервера сохранится в папке загрузок вашего браузера.

Перенос данных на сервер хостинга
До того, как заменить базу данных MySQL на хостинге, вам нужно узнать, совпадают ли версии MySQL экспортируемого сервера с версией СУБД, которая установлена на хостинге. Эту информацию можно получить несколькими путями:
Перейти на главную страницу phpMyAdmin. Здесь значение версии прописано в виджете «Сервер баз данных». Он расположен в верхнем углу справа.

В разделе программы «SQL» или в командной строке выполнить запрос:
Установка и базовая настройка MySQL на Ubuntu 18.04
СУБД MySQL надежное и заслуживающее доверия решение для управления базами данных при разработке веб-приложений. Система является частью стека LAMP, содержащего в себе такие компоненты как:
- Apache;
- Linux;
- MySQL;
- PHP/Python/Perl.
Для того чтобы установить MySQL на Ubuntu, необходимо соблюсти следующие условия:
- Административный доступ к серверу.
- По возможности не использовать для администрирования root-доступ.
- На сервер необходимо инсталлировать ОС Ubuntu 18.04.
Установка MySQL в Ubuntu 18.04
Подобная установка MySQL на сервер Ubuntu, состоит из четырех этапов:
- Установка.
- Настройка.
- Настройка привилегий.
- Тестирование.
Установка
В репозитории Ubuntu, как правило, располагается актуальная версия MySQL. Для обновления индекса пакетов используется команда – apt :
sudo apt update

sudo apt install mysql-server

Подчеркиваем, что подобный метод инсталляции не до конца безопасен, поскольку не требуется вводить пароль либо других ограничивающих данных. После установки необходима обязательная настройка MySQL.
Настройка
После установки «чистой» версии MySQL в обязательном порядке запускается скрипт, который отвечает за безопасность. Он меняет ключевые настройки безопасности. Например, генерирует пароли пользователей с правами root, которые не были заданы по умолчанию.
В более ранних выпусках СУБД была инициализация скрипта в ручном режиме. Сейчас, это выполняется автоматически.
Для безопасного выполнения скрипта используется следующая команда:
sudo mysql_secure_installation

Результатом станет предложение о внесении изменений в конфигурационные файлы безопасности. На этом этапе необходимо выполнить три действия:
- Инсталлировать Validate Password Plugin, отвечающий за проверку допустимости паролей в СУБД.
- Сгенерировать пароль пользователям, обладающим root-правами.
- Ввести сгенерированный пароль еще раз.
Для последующих действий достаточно нажать символ «Y» (согласие с операцией) и клавишу «ENTER» (выполнение операции).
По окончании алгоритма будут удалены анонимные пользователи, а также тестовые базы данных. Возможность удаленного подключения для пользователей с правами root будет отключена.
Все эти изменения сохранятся по отношению к конкретно устанавливаемой базе данных MySQL. Активация новой базы данных происходит посредством команды:
mysql_install_db
Указанный скрипт работает только для MySQL 5.7.6 и старше.
Более «свежие» версии оболочки потребуют введения команды:
mysqld –initialize
Настройка привилегий
Смена способа аутентификации
На серверах с операционной системой Ubuntu и установленной MySQL (версии 5.7 и старше) аутентификация пользователя с правами root происходит через плагин « auth_socket » без ввода пароля. Это достаточно надежная схема, но она может потерять актуальность в случае подключения внешнего софта, например – phpMyAdmin.
Для обеспечения безопасности и создания доступа для пользователей со статусом root, входить нужно при помощи пароля. Для чего метод идентификации через плагин «auth_socket» меняется на идентификацию через пароль «mysql_native_password».
Чтобы произвести замену, для начала входим в MySQL как пользователь root через команду:
sudo mysql

Далее, делается проверка на метод идентификации для каждого пользователя root посредством команды:
SELECT user,authentication_string,plugin,host FROM mysql.user;

Приведенный лог проверки показывает, что пользователь, наделенный правами root, авторизуется через плагин auth_socket.
Применить авторизацию при помощи пароля можно командой:
ALTER USER
![]()
При этом необходимо изменить значение « password » на надежный пароль. Полная команда выглядит так:
'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
![]()
Необходимо проверить, что новые настройки вступили в силу, и пользователь root входит, только используя пароль, без помощи плагина auth_socket. Команда:
SELECT user,authentication_string,plugin,host FROM mysql.user;

В списке видно, что пользователи с правами root проходят идентификацию, вводя пароль, а не через плагин. Получив такое подтверждение, можно выполнить выход из MySQL через команду:
exit
Смена способа аутентификации
В некоторых случаях может потребоваться создание отдельного пользователя с ограниченными правами. Например, он может добавлять в базу новые данные, но удалять или корректировать их не сможет.
Для этого выполняется вход в среду базы:
sudo mysql
Не стоит забывать, что если была включена авторизация при помощи ввода пароля, как было описано выше, привилегии вошедшему будут выданы, как для рядового пользователя. Для доступа с правами root необходимо ввести команду:
mysql -u root -p

После этого появится возможность создания нового пользователя базы данных и генерации для него надежного пароля. Сделать это можно командой:
CREATE USER 'пользователь'@'localhost' IDENTIFIED BY 'password';
Новому пользователю можно делегировать определенное количество функций. Например, полный доступ к таблицам или право на внесение и изменение данных. Изменять пользовательские привилегии можно следующей командой:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

На последнем шаге выполняется команда:
exit
Она позволяет выйти из системы MySQL.
Тестирование
Когда настройка MySQL на Ubuntu закончена, необходимо удостовериться в корректности работы сервера базы данных. Выполнить это можно двумя способами:
- Проверка автоматического запуска.
- Принудительное подключение к базе данных.
Независимо от способа установки базы данных, она запускается в автоматическом режиме. Проверить это можно при помощи команды:
systemctl status mysql.service
В логе консоли должен появиться вывод, соответствующий нижеприведенному:

В случае, когда сервер базы данных еще не запущен активация осуществляется командой:
sudo systemctl start mysql
Для вторичного контроля можно использовать принудительное подключение к базе данных посредством команды:
sudo mysqladmin -p -u root version
Для введения административных команд наиболее удобно использовать инструмент mysqladmin, являющимся внутренней утилитой MySQL.
Ответ от сервера должен выглядеть примерно следующим образом:

Данный ответ подтверждает, что сервер базы данных запущен и находится в рабочем состоянии.
Удаление MySQL
Иногда возникают ситуации, требующие удаления MySQL из Ubuntu. Например, когда нужно опробовать новую базу данных.
Удаление MySQL в Ubuntu начинается с ее остановки при помощи команды:
sudo service mysql stop
Если необходима полная деинсталляция базы данных, включая пользователей, пакеты, настройки конфигурации и прочее, относящееся к СУБД, то нужно последовательно выполнить следующие команды:
sudo apt-get remove --purge mysql-server mysql-client mysql-common

sudo apt-get autoremove

sudo apt-get autoclean

Если необходимо сохранить файлы конфигурации, а также данные, список команд выглядит по-другому:
$ sudo apt-get remove mysql-server mysql-client mysql-common
$ sudo apt-get autoremove
$ sudo apt-get autoclean
Надежный хостинг для сайта. 14 дней — бесплатно!
Мы всегда на связи в соцсетях
Поддержка в привычной среде
Мы в Яндекс Кью
- Хостинг для сайта
- CMS хостинг
- VPS сервер
- Удалённый рабочий стол
- Домены
- Стресс-тест на DDoS
Основы работы с MySQL
MySQL — одна из наиболее используемых систем управления базами данных: Что такое СУБД? MySQL применяется для хранения данных в Youtube, Twitter, Wikipedia. А также базы данных используются популярными CMS. В Рег.ру база данных входит в услугу хостинга.
Подробнее о MySQL мы рассказали в статье.
Как это следует из названия, в данной библиотеке используется формальный язык SQL (Structured Query Language), на котором создаются запросы к базам данных. Основной инструмент для работы с базами данных MySQL — phpMyAdmin. Подробнее о работе в phpMyAdmin читайте в статье.
Достоинства MySQL:
- полностью бесплатная СУБД;
- поддерживается большинством CMS;
- неограниченный многопользовательский режим;
- множество плагинов, облегчающих работу с данной СУБД;
- поддерживает различные типы таблиц (MyISAM, InnoDB, HEAP, MERGE);
- позволяет добавлять до 50 миллионов строк в таблицы.
Недостатки MySQL:
- ограниченный функционал (не реализованы все возможности SQL);
- не подходит для масштабных проектов.
Базы данных на хостинге Рег.ру доступны на всех тарифах, кроме Host-Lite и Win-Lite. Также базы данных доступны во всех панелях управления веб-хостингом. Если у вас один из этих тарифов, для использования баз данных повысьте тариф.
Как узнать имя сервера, имя пользователя и пароль для подключения к базе данных MySQL?
Для подключения к базе данных MySQL и для входа в phpMyAdmin необходимо указывать логин и пароль пользователя базы данных.
Логин и пароль
После заказа услуги хостинга в панели управления уже присутствует база данных «u1234567_default» (u1234567 — ваш логин хостинга). Вы можете воспользоваться этой базой данных. Реквизиты доступа к ней приведены в информационном письме и в личном кабинете в карточке услуги.
Как узнать логин и пароль услуги хостинга?
Логин и пароль услуги хостинга указаны в информационном письме, отправленном на контактный email после заказа хостинга. Также данная информация продублирована в личном кабинете. Авторизуйтесь на сайте Рег.ру и кликните по нужной услуге хостинга. Логин и пароль указаны на вкладке «Доступы»:

Или вы можете создать новую базу данных. В этом случае имя базы, имя пользователя и пароль вы зададите самостоятельно. Если у вас уже есть созданный сайт на CMS, узнать пароль базы данных можно в конфигурационном файле сайта: Где CMS хранит настройки подключения к базе данных.
Имя сервера
В качестве сервера базы данных необходимо указывать «localhost».
Как изменить пароль базы данных
Важно: в ispmanager подраздел «Базы данных» недоступен, если вы используете тариф «Host-Lite».
Чтобы изменить пароль базы данных, войдите в вашу панель управления хостингом и следуйте соответствующей инструкции ниже:
Ispmanager

Перейдите в раздел «Базы данных», выберите нужную базу и нажмите Пользователи:

Выберите пользователя БД, пароль которого необходимо изменить, и нажмите Изменить:
В открывшемся окне введите новый пароль и нажмите Ok.
Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с paper_lantern на jupiter.

В блоке «Базы данных» выберите пункт Базы данных MySQL:

Пролистайте страницу вниз до раздела «Текущие пользователи» и кликните по ссылке Изменить пароль для нужного пользователя:

Дважды введите новый пароль (если нужно, используйте генератор паролей). Нажмите кнопку Изменить пароль.

Перейдите в раздел «базы данных» и на открывшейся странице нажмите управление пользователями:
Кликните по имени пользователя, пароль которого необходимо изменить.

На открывшейся странице сгенерируйте новый пароль, нажав кнопку создать. чтобы увидеть и скопировать новый пароль, нажмите показать. нажмите применить для сохранения изменений:
Готово, пароль базы данных изменён.
Измените пароль в конфигурационном файле сайта
Не забудьте изменить пароль базы данных в настройках сайта: Где cms хранит настройки подключения к базе данных.
Как создать базу данных
Создание базы данных происходит в панели управления хостингом. Войдите в вашу панель управления хостингом и следуйте соответствующей инструкции ниже:
Ispmanager

Перейдите в раздел базы данных и нажмите создать базу данных:
Укажите имя базы данных и выберите из выпадающего списка имя пользователя. также вы можете создать нового пользователя, при этом в названии автоматически добавится префикс из вашего логина хостинга.
Сгенерируйте пароль пользователя и нажмите ок.
Готово, новая база данных создана.
Ошибка при создании бд в ispmanager
При создании базы данных к названию базы и к имени пользователя автоматически добавляется префикс вида u1234567_ (итого 9 символов), максимальное количество символов в имени — 16. таким образом, вводимое вами имя базы и имя пользователя не должно превышать 7 символов (16 минус префикс).
Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «основная информация» переключите тему с paper_lantern на jupiter.

В разделе «базы данных» выберите пункт мастер баз данных mysql:

На открывшейся странице укажите название базы данных и нажмите следующий шаг. к названию базы данных автоматически добавляется префикс вида u1234567_.

Укажите имя пользователя базы данных, пароль и повторите пароль. затем нажмите создать пользователя: К имени пользователя автоматически добавляется префикс вида u1234567_ (где u1234567 — ваш логин услуги хостинга).
Укажите права пользователя по отношению к базе данных (обычно необходимы все права) и нажмите Следующий шаг: img src=«https://img.reg.ru/faq/20220809_osnovy_raboty_s_mysql_7.png» loading=«lazy» alt=«=810×524 „Мастер баз данных MySQL 4“ itemprop=„contentUrl“ />
Готово, новая база данных создана.

Перейдите в раздел «Базы данных» и нажмите кнопку Добавить базу данных:
- имя базы данных (к названию автоматически добавляется префикс вида u1234567_);
- выберите сайт, на котором будет использоваться база данных;
- имя нового пользователя базы данных (к имени автоматически добавляется префикс вида u1234_);
- пароль и подтверждение пароля.
Обратите внимание! Каждая база данных должна иметь хотя бы одного пользователя, иначе она будет недоступна. Поставив галочку в соответствующей графе, вы разрешите пользователю доступ ко всем базам данных выбранной подписки.
Нажмите ОК внизу страницы.
Готово, новая база данных создана.
Внимание!
На серверах компании Рег.ру присутствует проверка на сложность пароля. Пароль не может быть короче 6 символов и должен содержать специальные символы (например: !,@,#,$,%,&. _), буквы латинского алфавита: a-z, цифры: 0-9. Если вводимый вами пароль пользователя базы данных не удовлетворяет этим требованиям, появится соответствующее предупреждение.
Удалённый доступ к базе данных MySQL
Для активации удалённого соединения с базой данных войдите в вашу панель управления хостингом, и следуйте соответствующей инструкции ниже:
Ispmanager

Чтобы активировать удаленный доступ MySQL, выберите пункт «Базы данных». Кликните по базе данных и нажмите Пользователи:

Выберите пользователя, под которым вы будете удалённо подключаться, и нажмите Изменить:
Установите галочку напротив пункта «Удалённый доступ», при необходимости ограничьте удалённое подключение определённым списком IP-адресов. Нажмите Ok.
Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с paper_lantern на jupiter.

В разделе «Базы данных» выберите пункт Удаленный MySQL:

В открывшемся окне добавьте в поле «Узел» IP-адрес, с которого будет происходить удалённое подключение. Если у вас динамический IP-адрес, вы можете разрешить доступ для диапазона IP-адресов. Например, для IP-адреса начинающегося с 208.77.188, можно настроить доступ так, как показано на скриншоте. После этого нажмите Добавить узел:
В панели управления Plesk возможность удалённого соединения включена по умолчанию.
Какие данные необходимо использовать для удалённого подключения?
Для удалённого соединения с базой данных (БД) и доступа к MySQL необходимо указывать следующие данные:
- Server/Hostname (сервер базы данных): в качестве сервера необходимо указывать
- имя сервера, на котором располагается ваша услуга хостинга (например, serverX.hosting.reg.ru, точное имя сервера вы можете уточнить в информационном письме),
- либо IP-адрес сервера
- либо доменное имя сайта (убедитесь, что домен припаркован к хостингу);
Какие программы использовать для удалённого подключения MySQL
Подключиться к базе данных вы можете с помощью программы «mysql». Пример удалённого подключения к базе данных на сервере «server90.hosting.reg.ru» под пользователем «u0015955_default»:
mysql -p3306 -hserver90.hosting.reg.ru -uu0015955_default -pPuTTY
Из соображений безопасности на виртуальном хостинге не предоставляется возможности настройки SSH-туннелирования для соединения с базой данных. Для этого мы рекомендуем приобрести VPS или выделенный сервер.
Как изменить версию MySQL?
На виртуальном хостинге доступны следующие версии MySQL: — MySQL Version 5.7.23(mysql Ver 14.14 Distrib 5.7.23-24, for Linux (x86_64) using 6.0).
Как обновить mysql на хостинге? Изменить версию MySQL на виртуальном хостинге невозможно.
Как удалить базу данных MySQL
Удалить базу данных можно в одной из хостинг панелей. Войдите в вашу панель управления хостингом и следуйте соответствующей инструкции ниже:
Ispmanager
Перейдите в раздел «Базы данных». Выделите базу данных, которая вам больше не нужна, и нажмите Удалить:


В блоке «Базы данных» выберите пункт Базы данных MySQL:

Пролистайте страницу вниз до раздела «Текущие базы данных» и кликните Удалить напротив нужной базы: Обратите внимание: удаление пользователя базы данных при этом не происходит, его необходимо удалять отдельно. Процесс аналогичен.
Перейдите в раздел «Базы данных» и на открывшейся странице нажмите Удалить базу данных напротив нужной базы.
Полезные статьи при работе с базами данных MySQL:
- Экспорт базы данных MySQL (export database)
- Как очистить таблицу MySQL и очистить базу данных?
Помогла ли вам статья?
Спасибо за оценку. Рады помочь
Установка и настройка MySQL/MariaDB на VDS. Создание кластеров MySQL
В данной статье рассмотрен процесс установки MySQL и MariaDB на пустой вновь созданный VDS, а так же как настройка репликации master-slave и master-master между двумя серверами MySQL/MariaDB.
Все действия в консоли сервера в рамках данной статьи производятся от имени суперпользователя root.
Показать все разделы
Установка MySQL
На свежеустановленном VDS в консоли запускаем команды:
# apt-get update # apt-get install -y mysql-server mysql-clientВ процессе установки вам будет предложено задать пароль для аккаунта root@localhost в MySQL.
Установка MariaDB
С основными отличиями MariaDB от MySQL можно ознакомиться на официальном сайте. Рассмотрим краткую выдержку:
- Расширение механизмов хранения данных
- Улучшенная производительность
- Расширения и новые возможности
- Улучшенное тестирование
- Меньше ошибок и предупреждений
- Настоящий Open Source проект
Если вам больше нравится MariaDB, а не MySQL, инструкции по установке MariaDB выглядят следующим образом.
Показать установку
Сначала пропишем настройки репозитория MariaDB (для Debian Wheezy):
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db # echo 'deb http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian wheezy main' > /etc/apt/sources.list.d/mariadb.list # echo 'Package: *' > /etc/apt/preferences.d/mariadb # echo 'Pin: origin ftp.osuosl.org' >> /etc/apt/preferences.d/mariadb # echo 'Pin-Priority: 1000' >> /etc/apt/preferences.d/mariadbЕсли вы ставите MariaDB на Ubuntu 12.04, то вторая строчка будет выглядеть так:
# echo 'deb http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu precise main' > /etc/apt/sources.list.d/mariadb.listА для Ubuntu 14.04 так:
# echo 'deb http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main' > /etc/apt/sources.list.d/mariadb.listПроизводим установку MariaDB:
# apt-get update # apt-get install mariadb-serverТак же, как и в случае MySQL, на этом этапе вам будет предложено установить пароль для root@localhost .
Разрешаем доступ к MySQL/MariaDB с других серверов
По-умолчанию конфигурационный файл MySQL /etc/mysql/my.cnf содержит инструкции, предписывающие, что сервер будет доступен для подключения к нему только внутри вашего VDS на loopback-интерфейсе или через unix-сокет. Если вы планируете подключаться к MySQL с других серверов, а это вам точно потребуется для настройки репликации, необходимо внести изменения в my.cnf .
Показать настройку доступа
# nano /etc/mysql/my.cnfВ этом файле нужно найти строчку
bind-address = 127.0.0.1И поставить символ комментария ( # ) в начало этой строки, после чего сохранить изменения. Для применения изменений перезапускаем mysql:
# /etc/init.d/mysql restartУстанавливаем пароль для доступа mysql-пользователем root к базе данных при подключении с других серверов:
# echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Passw0rd' WITH GRANT OPTION;" | mysql -u root -pЗдесь ключ -p в конце требуется указывать только если при установке MySQL вы задавали пароль для root@localhost .
Настраиваем репликацию master-slave
Для репликации master-slave вам потребуется два сервера с MySQL или MariaDB. Желательно, чтобы на обоих серверах стояла одна и та же версия СУБД: успешность и стабильность репликации между MySQL и MariaDB мы не проверяли. Мы подразумеваем, что для обоих серверв с MySQL/MariaDB проделаны все описанные выше шаги, включая разрешение доступа с других серверов.
Показать подробности настройки
Итак, настроим репликацию. Для этого отредактируем на обоих серверах файл конфигурации:
# nano /etc/mysql/my.cnfУбедимся, что строка, начинающаяся с bind-address , закомментирована, то есть выглядит так:
#bind-address = 127.0.0.1Убираем значок комментария ( # ) в строке с server-id . Каждый сервер в кластере должен иметь уникальное значение server-id , например на master сервере указываем:
server-id = 1На slave сервере соответственно:
server-id = 2Также понадобится добавить или изменить параметры auto_increment_offset и auto_increment_increment.
auto_increment_offset = 1 auto_increment_increment = 2auto_increment_offset = 2 auto_increment_increment = 2На master сервере раскомментируем строку log_bin :
log_bin = /var/log/mysql/mysql-bin.logНа обоих серверах раскомментируем строку binlog_do_db и впишем туда список баз данных, участвующих в репликации. Например, пусть у нас требуется настроить репликацию для БД с именем testdb . Тогда в binlog_do_db пишем:
binlog_do_db = testdbНа slave сервере так же потребуется после binlog_do_db добавить строки:
relay-log = /var/log/mysql/mysql-relay-bin relay-log-index = /var/log/mysql/mysql-relay-bin.indexТеперь сохраняем измененный конфигурационный файл my.cnf на обоих серверах и перезапускаем MySQL, чтобы изменения вступили в силу. Для этого в консоли обоих серверов выполняем:
# /etc/init.d/mysql restartДобавляем на master сервере пользователя для репликации (вместо 193.107.0.2 следует подставить ip-адрес slave сервера):
mysql-master:~# echo "GRANT replication slave ON *.* TO 'replication'@'193.107.0.2' IDENTIFIED BY 'ReplicaPass';" | mysql -u root -pЕсли на master сервере в базе testdb уже есть какие-то данные, то копируем их на slave. Для этого на master заходим в консоль MySQL:
mysql-master:~# mysql -u root -pБлокируем БД от записи в командной строке mysql:
> FLUSH TABLES WITH READ LOCK; > SET GLOBAL read_only = ON;По завершении команд остаёмся в командной строке mysql и переводим клиента mysql в фоновый (background) режим, для чего на клавиатуре нажимаем сочетание клавиш ctrl+z . После этого мы оказываемся в командной строке bash:
[1]+ Stopped mysql mysql-master:~#Производим дамп базы данных testdb и возвращаем консоль mysql из фонового режима назад:
mysql-master:~# mysqldump testdb > testdb_dump.sql mysql-master:~# fgМы снова оказались в консоли mysql. Смотрим статус мастера:
> show master status;Нам показывается таблица вида:
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 107 | testdb | | +------------------+----------+--------------+------------------+Из этой таблицы нам потребуются значения столбцов File и Position, в данном случае соответственно mysql-bin.000001 и 107 . Запоминаем или записываем их и разрешаем запись в базу:
> SET GLOBAL read_only = OFF;Завершаем сеанс работы с mysql на мастере ( ctrl+d или командой exit в консоли mysql) и импортируем сделанный ранее дамп testdb_dump.sql в MySQL на slave сервере. Для этого в консоли slave сервера выполняем:
mysql-slave:~# mysqladmin create testdbА в консоли master сервера:
mysql-master:~# mysql -uroot -p -h 193.107.0.2 testdb < testdb_dump.sqlВместо 193.107.0.2 подставьте ip адрес slave сервера.
Теперь на slave сервере запускаем репликацию (в командной строке подставляем вместо 193.107.0.1 ip-адрес мастера, а в полях MASTER_LOG_FILE и MASTER_LOG_POS значения, запомненые ранее):
mysql-slave:~# echo "CHANGE MASTER TO MASTER_HOST = '193.107.0.1', MASTER_USER = 'replication', \ MASTER_PASSWORD = 'ReplicaPass', MASTER_LOG_FILE = 'mysql-bin.000001', \ MASTER_LOG_POS = 107;" | mysql -u root -p mysql-slave:~# echo "START SLAVE;" | mysql -u root -pРепликация запущена. Посмотреть статус репликации можно командой:
mysql-slave:~# echo "SHOW SLAVE STATUS\G" | mysql -uroot -pРепликация мастер-мастер заключается в симметричной настройке репликации мастер-слейв. То есть, в данном случае потребуется добавить репликацию со слейва на мастер точно таким же способом.