MySQL: миграция с MySQL на MariaDB

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

Переход с MySQL на MariaDB не доставит особых трудностей:

Так называемая миграция с платформы на платформу производится на:

# cat /etc/redhat-release
CentOS release 6.5 (Final)
# uname -p
x86_64

Для начала создаётся дамп всех баз:

1 # mysqldump -u root -p -A > alldbs.sql
2 Enter password:
3 — Warning: Skipping the data of table mysql.event. Specify the —events option explicitly.

Затем останавливается работа MySQL:

1 # service mysqld stop
2 Stopping mysqld:                                           [  OK  ]

Следуя информации из официального источника HowTo, установка MariaDB возможна поверх имеющейся системы MySQL. Тем не менее, это может повлечь за собой ряд проблем, связанных с установкой зависимостей.

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

1 # yum -y remove mysql* mysql-server mysql-devel mysql-libs
2
3 Removing for dependencies:
4  dovecot-mysql x86_64 1:2.0.9-7.el6_5.1 @updates 18 k
5  mysql-server x86_64 5.1.73-3.el6_5 @updates 25 M
6  perl-DBD-MySQL x86_64 4.013-3.el6 @base 338 k
7  php-mysql x86_64 5.3.3-27.el6_5.1 @updates 216 k
8

Следующим шагом отключаем автозагрузку:

1 # chkconfig mysqld off

Теперь можно приступать к непосредственной установке MariaDB.

Первым шагом в файле /etc/yum.repos.d/MariaDB.repo прописываем:

1 [mariadb]
2 name = MariaDB
3 baseurl = http://yum.mariadb.org/5.5/centos6-amd64
4 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
5 gpgcheck=1
6 priority=1
7 #enabled=0

Производим процесс установки:

1 # yum -y install MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared

Осуществляем запуск при помощи следующего блока:

1 # service mysql start
2 Starting MySQL.. SUCCESS!
1 # chkconfig mysql on
2 # chkconfig —list | grep mysql
3 mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Далее выполняем действия по первоначальной настройке программы:

1 # /usr/bin/mysql_secure_installation

Затем необходимо вновь установить пакеты, что были удалены вместе с MySQL:

1 # yum -y install php-mysql  dovecot-mysql perl-DBD-MySQL exim-mysql
2
3 Installed:
4 dovecot-mysql.x86_64 1:2.0.9-7.el6_5.1 perl-DBD-MySQL.x86_64 0:4.013-3.el6 php-mysql.x86_64 0:5.3.3-27.el6_5.1

В случае удаления MySQL, файл конфигурации сохраняется как /etc/my.cnf.rpmsave.

Теперь необходимо удалить имеющийся файл, созданный MariaDB:

1 # mv /etc/my.cnf /etc/my.cnf.bkp-24-08-2014

Выполняем копирование сохранённого файла:

1 # cp /etc/my.cnf.rpmsave /etc/my.cnf

Следующим этапом выполняем перезапуск сервера:

1 # service mysql restart
2 Shutting down MySQL. SUCCESS!
3 Starting MySQL.. SUCCESS!

Обратите ваше внимание на то, что некоторые из опций из my.cnf для MySQL могут быть несовместимы (к примеру, в связи с отличиями в типах хранилищ), несмотря на то, что разработчиком заявлена комплексная поддержка.

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

1 # service mysql start
2 Starting MySQL… ERROR!

Затем включаем логирование:

1 [mysqld_safe]
2 syslog

В завершение контролируем лог /var/log/messages:

1 Aug 24 11:49:03 venti mysqld: 140824 11:49:03 [ERROR] /usr/sbin/mysqld: unknown option ‘—skip-locking’

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

1 # chkconfig mysql on

Далее выполняем проверку установки:

1 # mysql -V
2 mysql  Ver 15.1 Distrib 5.5.39-MariaDB, for Linux (i686) using readline 5.1
1 # netstat -anp | grep 3306
2 tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2823/mysqld
3 # service mysql status
4  SUCCESS! MySQL running (2823)

На данном этапе необходимо обеспечить присутствие баз данных:

01 MariaDB [(none)]> show databases;
02 +———————+
03 | Database           |
04 +———————+
05 | information_schema |
06 | autocomtestdb      |
07 | db_1               |
08 | mysql              |
09 | roundcube          |
10 | setevoy_money_db1  |
11 | setevoy_test       |
12 | setevoyorgua_db1   |
13 | vexim              |
14 +———————+

При возникновении проблем с перезагрузкой сервера, необходимо загрузить дамп базы:

1 # mysql -u root -p < alldbs.sql
2 Enter password:

Далее выполняем перезапуск сервисов:

1 # service httpd restart
2 Stopping httpd: [ OK ]
3 Starting httpd: [ OK ]
1 # service dovecot restart
2 Stopping Dovecot Imap: [ OK ]
3 Starting Dovecot Imap: [ OK ]
1 # service exim restart
2 Shutting down exim: [ OK ]
3 Starting exim: [ OK ]

Завершаем установку проверкой лога Dovecot:

1 Aug 24 11:34:58 venti dovecot: master: Warning: Killed with signal 15 (by pid=32207 uid=0 code=kill)
2 Aug 24 11:34:59 venti dovecot: master: Dovecot v2.0.9 starting up (core dumps disabled)
3 Aug 24 11:35:05 venti dovecot: auth: mysql: Connected to localhost (vexim)
4 Aug 24 11:35:05 venti dovecot: auth: mysql: Connected to localhost (vexim)

И лога Exim:

1 2014-08-24 12:15:05 exim 4.72 daemon started: pid=2452, -q1h, listening for SMTP on port 25 (IPv6 and IPv4) port 250 (IPv6 and IPv4)

Данный алгоритм позволит вам успешно осуществить замещение, сэкономив ваше время и нервные клетки.

Comments

comments