Установка MariaDB наряду с MySQL
MariaDB изначально разрабатывалась как замена MySQL «всё-в-одном», с большим набором функций, новыми движками хранения, меньшим количеством ошибок и лучшей производительностью, но вы также можете установить её наряду с MySQL. (Это может быть полезно, например, если вы хотите мигрировать базы данных/приложения по одному.)
Вот шаги по установке MariaDB рядом с уже существующей установкой MySQL.
- Загрузите скомпилированный двоичный архив tar.gz, содержащий последнюю версию (mariadb-5.5.24-linux-x86_64.tar.gz — на момент написания этой статьи) и распакуйте файлы в каталог по вашему выбору. В этой статье будем предполагать, что каталог — /opt.
[root@mariadb-near-mysql ~]# cat /etc/issue CentOS release 6.2 (Final) [root@mariadb-near-mysql ~]# rpm -qa mysql* mysql-5.1.61-1.el6_2.1.x86_64 mysql-libs-5.1.61-1.el6_2.1.x86_64 mysql-server-5.1.61-1.el6_2.1.x86_64 [root@mariadb-near-mysql ~]# ps axf | grep mysqld 2072 pts/0 S+ 0:00 \_ grep mysqld 1867 ? S 0:01 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock ... 1974 ? Sl 0:06 \_ /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql ...
- Создайте каталог данных и символические ссылки, как показано ниже:
[root@mariadb-near-mysql opt]# mkdir mariadb-data [root@mariadb-near-mysql opt]# ln -s mariadb-5.5.24-linux-x86_64 mariadb [root@mariadb-near-mysql opt]# ls -al total 20 drwxr-xr-x. 5 root root 4096 2012-06-06 07:27 . dr-xr-xr-x. 23 root root 4096 2012-06-06 06:38 .. lrwxrwxrwx. 1 root root 27 2012-06-06 07:27 mariadb -> mariadb-5.5.24-linux-x86_64 drwxr-xr-x. 13 root root 4096 2012-06-06 07:07 mariadb-5.5.24-linux-x86_64 drwxr-xr-x. 2 root root 4096 2012-06-06 07:26 mariadb-data
- Создайте группу mariadb и пользователя mariadb и установите правильные права владения:
[root@mariadb-near-mysql opt]# groupadd --system mariadb [root@mariadb-near-mysql opt]# useradd -c "MariaDB Server" -d /opt/mariadb -g mariadb --system mariadb [root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-5.5.24-linux-x86_64/ [root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-data/
- Создайте новый файл my.cnf в /opt/mariadb из файлов поддержки:
[root@mariadb-near-mysql opt]# cp mariadb/support-files/my-medium.cnf mariadb-data/my.cnf [root@mariadb-near-mysql opt]# chown mariadb:mariadb mariadb-data/my.cnf
- Отредактируйте файл /opt/mariadb-data/my.cnf и добавьте пользовательские пути, сокет, порт, пользователя и самое главное: каталог данных и базовый каталог. В конечном счёте, файл должен содержать по крайней мере следующее:
[client] port = 3307 socket = /opt/mariadb-data/mariadb.sock [mysqld] datadir = /opt/mariadb-data basedir = /opt/mariadb port = 3307 socket = /opt/mariadb-data/mariadb.sock user = mariadb
- Скопируйте скрипт init.d из файлов поддержки в нужное место:
[root@mariadb-near-mysql opt]# cp mariadb/support-files/mysql.server /etc/init.d/mariadb [root@mariadb-near-mysql opt]# chmod +x /etc/init.d/mariadb
- Отредактируйте /etc/init.d/mariadb, заменив mysql на mariadb, как показано ниже:
- # Provides: mysql + # Provides: mariadb - basedir= + basedir=/opt/mariadb - datadir= + datadir=/opt/mariadb-data - lock_file_path="$lockdir/mysql" + lock_file_path="$lockdir/mariadb"
Самой сложной частью будут последние изменения в этом файле. Вам нужно указать MariaDB использовать только один файл cnf. В разделе start после $bindir/mysqld_safe добавьте --defaults-file=/opt/mariadb-data/my.cnf. В конечном итоге строки должны выглядеть так:
# Give extra arguments to mysqld with the my.cnf file. This script # may be overwritten at next upgrade. $bindir/mysqld_safe --defaults-file=/opt/mariadb-data/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
То же самое изменение необходимо внести в команду mariadb-admin ниже в функции wait_for_ready(), чтобы команда запуска MariaDB могла правильно прослушивать запуск сервера. В функции wait_for_ready() после $bindir/mariadb-admin добавьте --defaults-file=/opt/mariadb-data/my.cnf. Строки должны выглядеть так:
wait_for_ready () {
[...]
if $bindir/mariadb-admin --defaults-file=/opt/mariadb-data/my.cnf ping >/dev/null 2>&1; then
- Запустите mariadb-install-db, явно передав ему файл my.cnf в качестве аргумента:
[root@mariadb-near-mysql opt]# cd mariadb [root@mariadb-near-mysql mariadb]# scripts/mariadb-install-db --defaults-file=/opt/mariadb-data/my.cnf
- Теперь вы можете запустить MariaDB, выполнив
[root@mariadb-near-mysql opt]# /etc/init.d/mariadb start Starting MySQL... [ OK ]
- Настройте MariaDB на запуск при запуске системы:
[root@mariadb-near-mysql opt]# cd /etc/init.d [root@mariadb-near-mysql init.d]# chkconfig --add mariadb [root@mariadb-near-mysql init.d]# chkconfig --levels 3 mariadb on
- Наконец, проверьте, что оба экземпляра работают:
[root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();" +-----------+ | VERSION() | +-----------+ | 5.1.61 | +-----------+ [root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();" --socket=/opt/mariadb-data/mariadb.sock +----------------+ | VERSION() | +----------------+ | 5.5.24-MariaDB | +----------------+
Что насчёт обновлений MariaDB?
Имея mariadb.socket, файл my.cnf и базы данных в /opt/mariadb-data, если вы хотите обновить версию MariaDB, вам нужно будет только:
- распаковать новую версию из архива в /opt рядом с текущей версией
- остановить MariaDB
- изменить символическую ссылку mariadb на указание на новый каталог
- запустить MariaDB
- запустить скрипт обновления... но помните, что вам потребуется указать параметр сокета --socket=/opt/mariadb-data/mariadb.sock
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/installing-mariadb-alongside-mysql/