КакЭто: Перенос MySQL баз и пользователей на новый сервер

Иногда, бывает так, что железо устаривает, машина начинает тормозить, доступ к ней усложняется, а апгрейд просто не пройдёт, в такой ситуации может спасти только новый сервер.

Полный перенос данных Mysql с одного сервера на другой А новый сервер означает, что нужен будет перенос всех важных данных со старого сервера. MySQL данные относятся именно к таким. Перенести бекап баз не составит большого труда, а вот если нужно перенести всех пользователей и их привилегии – задача становится труднее. И эту задачу мы постараемся сегодня решить.
Итак, в этой статье мы полностью перенесём все MySQL данные со старого сервера на новый.
Основная функция системы привилегий MySQL (которые хранятся в таблице mysql.user) это авторизация пользователей, которые присоединяются с выделенного им хоста и ассоциация этих пользователей с привилегиями на базы данных (SELECT, INSERT, UPDATE, и DELETE).

Что нам нужно сделать

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

  +——-+

  | db1 | ————————-> -+

  +——-+

   Старый Mysql сервер

   (192.168.0.8)

  +——+

  | db2 | —————> ——-+—->   Интернет (Роутер провайдера)

  +——+

   Новый Mysql сервер

   (192.168.0.10)

  +——+

  | Веб1| ————————-> -+

  +——+

    Apache Веб сервер

    (192.168.0.12)

Как видно из схемы, нам нужно перенести все MySQL данные, включая пользователей и их привилегии, с сервера db1 на сервер db2.

Установим MySQL на db2

Конечно, пути установки MySQL зависят от используемого дистрибутива. Я люблю Gentoo Linux:

1
2
3

#Вы должны быть «под» root’ом

emerge -av mysql

rc-update add mysql default

Сразу ставим пароль для root’а

1

mysqladmin -u root password NEWPASSWORD

Ну, если Вы вдруг используете одну из систем семейства Ubuntu, то Ваш листинг установки будет следующий:

1
2
3
4

sudo apt-get install mysql-server mysql-client

sudo service mysql start

# Сразу ставим пароль для root’а

mysqladmin -u root password NEWPASSWORD

Тоже ничего сложного.

Получаем текущие данные MySQL: Пользователей, Хосты и привилегии

На сервере db1 выполняем следующую команду:

1

mysql -u root -B -N -p -e «SELECT user, host FROM user» mysql

Вывод этой команды будет примерно таким:

1
2
3
4
5
6
7

bloger        192.168.0.5

Kicker     192.168.0.5

Katya     192.168.0.7

Pavel     192.168.0.12

root             localhost

            db1.logi.cc

root            db1.logi.cc

Первая колонка – это имена пользователей, вторая хосты. Теперь, для того чтобы узнать привилегии пользователей используйте следующую команду:

1

mysql -u root -p -B -N -e»SHOW GRANTS FOR ‘userName’@hostName»

Вместо userName подставляем имя пользователя, а вместо hostName соответственно его хост. Например:

1

mysql -u root -p -B -N -e»SHOW GRANTS FOR ‘Pavel’@192.168.0.12″

Вывод команды будет такой:

1
2

GRANT USAGE ON *.* TO ‘Pavel’@192.168.0.12’ IDENTIFIED BY PASSWORD ‘какойнитьпарольвMd5’

GRANT ALL PRIVILEGES ON `sitedb`.* TO ‘Pavel’@192.168.0.12’

Где,

  • Pavel – Имя пользователя MySQL
  • 192.168.0.12 – IP адрес хоста, который имеет доступ к MySQL серверу
  • какойнитьпарольвMd5 – Пароль пользователя в MD5 шифровании
  • sitedb – Имя базы данных, к которой пользователь имеет полные привилегии

Теперь нам известна вся нужная информация, и мы можем начать перенос с сервера db1 на сервер db2. Делать мы это будем при помощи SSH:

1
2
3
4

ssh user@db2 mysql -u root -p’password’ -e «create database IF NOT EXISTS sitedb;»

ssh user@db2 mysql -u root -p’password’ -e «GRANT USAGE ON *.* TO ‘Pavel’@’192.168.0.12’ IDENTIFIED BY PASSWORD ‘какойнитьпарольвMd5’;»

ssh user@db2 mysql -u root -p’password’ -e «GRANT ALL PRIVILEGES ON `sitedb`.* TO ‘Pavel’@’192.168.0.12’;»

mysqldump -u root -p’password’ -h ‘localhost’ sitedb| ssh user@db2 mysql -u root -p’password’ sitedb

Теперь можно протестировать проделанную работу с машины Веб1:

1

mysql -u Pavel -h 192.168.0.10 -p sitedb -e ‘show tables;’

Простой скрипт для миграции MySQL базы данных

Скрипт для Миграции базы данных MySQL

logi.cc

Запись опубликована в рубрике *Unix,*Linux, *Windows, FreeBSD. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91