CentOS: установка MariaDB

Автор: | 08/23/2014
 

mariadb_logoMariaDB — форк от MySQL, с улучшенной производительностью и новыми возможностями.

Больше подробностей можно получить на официальном сайте.

Установка выполняется на:

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

Добавляем репозиторий.

Получить код для файла описания репозитория под конкретную ОС и архитектуру можно тут>>>.

В файл /etc/yum.repos.d/MariaDB.repo вписываем:

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

Удаляем всё, что связано с MySQL (будьте внимательны при удалении — в зависимостях может потянуть, например, Postfix):

# yum remove mysql* mysql-server mysql-devel mysql-libs

Устанавливаем MariaDB:

# yum install MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared
...
Installed:
MariaDB-client.i386 0:5.5.39-1 MariaDB-server.i386 0:5.5.39-1

Dependency Installed:
MariaDB-common.i386 0:5.5.39-1 openssl098e.i686 0:0.9.8e-18.el6_5.2

Complete!

При необходимости — YUM при установке MariaDB заменит пакеты MySQL сам, но лучше их всё-таки удалить перед установкой:

 MariaDB-shared                                          x86_64                                          5.5.42-1.el6                                           mariadb                                          1.1 M
     replacing  mysql-libs.x86_64 5.5.39-1.el6.remi

Запускаем:

# service mysql start
Starting MySQL...... SUCCESS!

Добавляем в автозагрузку:

# chkconfig mysql on
# chkconfig --list | grep mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Выполняем первоначальную настройку:

# /usr/bin/mysql_secure_installation
...
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
...
Remove anonymous users? [Y/n] y
... Success!
...
Disallow root login remotely? [Y/n] y
... Success!
...
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
...
Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

И пробуем зайти в консоль:

# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 12
Server version: 5.5.39-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]>
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

Готово.

Быстрое сравнение производительности MySQL и MariaDB

Сравнение выполняется с помощью mysqlslap. Подбробнее — в статье MySQL: mysqlslap — нагрузочное тестирование.

Для сравнения — используются две одинаковых виртаульных маншины под управлением CentOS 6.5.

На одной установлен:

# yum list installed | grep mysql-server
mysql-server.i686 5.5.38-1.el6.remi @remi

На второй:

# yum list installed | grep MariaDB-server
MariaDB-server.i386 5.5.39-1 @mariadb

Обе не содержат никаких пользовательских баз:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mysqlslap          |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mysqlslap          |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

База mysqlslap будет использоваться для тестирования.

MySQL работает со стандартным файлом конфигурации:

# head -n 1 /etc/my.cnf
# Example MySQL config file for small systems.

Выполняем то же для MariaDB:

# rm /etc/my.cnf
# cp /usr/share/mysql/my-small.cnf /etc/
# service mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL..... SUCCESS!

Выполняем на MySQL:

# mysqlslap -u root -p --auto-generate-sql --concurrency 10 --number-of-queries 100 --number-char-cols=5 --number-int-cols=10
Enter password:
Benchmark
        Average number of seconds to run all queries: 0.550 seconds
        Minimum number of seconds to run all queries: 0.550 seconds
        Maximum number of seconds to run all queries: 0.550 seconds
        Number of clients running queries: 10
        Average number of queries per client: 10

И на MariaDB:

# mysqlslap -u root -p --auto-generate-sql --concurrency 10 --number-of-queries 100 --number-char-cols=5 --number-int-cols=10
Enter password:
Benchmark
        Average number of seconds to run all queries: 0.213 seconds
        Minimum number of seconds to run all queries: 0.213 seconds
        Maximum number of seconds to run all queries: 0.213 seconds
        Number of clients running queries: 10
        Average number of queries per client: 10