Как настроить MariaDB SSL и установить безопасные соединения с различных клиентов. Установка и настройка MariaDB на CentOS - подробная инструкция Выбор версии MariaDB

Эта статья «Установка MariaDB 10 на CentOS 7» покажет вам, как установить и настроить MariaDB 10 на CentOS 7. Как вы вероятно уже знаете, сервер базы данных MariaDB теперь по умолчанию на CentOS т.к из-за Oracle (MySQL материнская компания) и вопросов GPL лицензирования. MariaDB с открытым исходным кодом и сообщество постепенно отходит от MySQL и переходит на MariaDB.

Если вы не знаете историю, вот краткое резюме. До Oracle владеющий MySQL, она была основана на GPL (GNU General Public License), которая говорит, что вы можете использовать программное обеспечение бесплатно, но вы не можете изменять и продавать его, если вы не отдаете исходный код. Это означает, что вы можете использовать его в вашем проекте с закрытым исходным кодоме.

Когда Oracle изменила лицензионное соглашение от модели GPL, в основном в с открытым исходным кодом сообщества восстали и некоторые начали группу из MySQL и создали MariaDB.

Поэтому в основном, сервер базы данных MariaDB такой же как и MySQL, но с моделью лицензирования GPL.

Теперь, когда вы знаете немного больше о том, почему и как MariaDB была основана, давайте будем учиться, как установить ее на CentOS 7.

Установка MariaDB на CentOS 7

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

Если вы хотите, чтобы установить последнюю версию MariaDB, необходимо добавить его репозиторий программного обеспечения на ваш компьютер и установить. Чтобы сделать это, выполните следующие команды, чтобы создать файл из хранилища.

$ sudo vim /etc/yum.repos.d/MariaDB.repo

Затем скопируйте и вставьте строки что ниже в файл и сохранить его.

Name = MariaDB baseurl = http://yum.mariadb.org/10.0/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

Наконец, выполните команды ниже, чтобы установить MariaDB 10 на ваш сервер:

$ sudo yum install MariaDB-server MariaDB-client

Если у вас возникли проблемы с ошибками и MariaDB не может быть установлена из-за конфликта с mariadb-libs-xxxx, выполните команду что ниже, чтобы удалить конфликтующие библиотеки, и после чего повторно запустите установку команды что выше:

$ sudo yum remove mariadb-libs*

Следует также удалить пакет Postfix. Повторно запустите команду что выше, чтобы установить MariaDB.

После завершения установки, выполните команду что ниже, чтобы запустить сервер с MariaDB:

$ sudo /etc/init.d/mysql start

Затем выполните следующую команду, чтобы защитить сервер базы данных.

$ sudo mysql_secure_installation

Затем выберите «Y» (Да) для остальных подсказок, пока вы не закончите.

Enter current password for root (enter for none): press Enter Set root password? Y New password: Type new root password Re-enter new password: Confirm the password Remove anonymous users? Y Disallow root login remotely? Y Remove test database and access to it? Y Reload privilege tables now? Y

Последнее, необходимо заменить cnf.ini файл по умолчанию в /etc/ для MariaDB. Но для начала нужно перейти в:

$ cd /usr/share/mysql

И использовать один из предопределенных cnf.ini конфигураций которые доступны (Huge, Medium и Small) в данной папке.

Сделаем резервное копирование cnf.ini файла:

$ sudo mv /etc/cnf.ini /etc/cnf.ini.bak

Затем скопируйте один из предварительных конфигураций в MariaDB:

$ sudo cp /usr/share/mysql/my-huge.cnf /etc/cnf.ini

Перезапуск MaraiDB:

$ systemctl restart mysql

Можно проверить статус:

$ systemctl status mariadb

Можно добавить MariaBD в автозагрузку ОС:

$ systemctl enable mariadb

Мне нужно создать пользователя и чтобы он мог подключатся из любого компьютера, для этого:

$ mysql -uroot -u >GRANT ALL PRIVILEGES ON *.* TO "captain"@"%" IDENTIFIED BY "my_password" WITH GRANT OPTION; > exit

Проверим какой порт прослушивает MariaDB с помощью команды SS:

# ss -tnlp | grep 3306 LISTEN 0 0 127.0.0.1:3306 *:* users:(("mysqld",1159,14))

Мой выглядит вот так (я разрешил удаленное подключение к серверу БД):

LISTEN 0 50 *:3306 *:* users:(("mysqld",10884,13))

Установка MariaDB 10 на CentOS 7 завершена.

Я собираюсь установить MariaDB SSL (Secure Sockets Layer) а также безопасные соединения от клиента MySQL и приложения PHP. Как включить SSL для сервера и клиента MariaDB, работающего в Linux или Unix-подобной системе?

MariaDB – сервер базы данных, который предлагает функциональные возможности вклинивания для сервера MySQL.

MariaDB был создан некоторыми из оригинальных авторов MySQL, с помощью более широкого штата разработчиков Free и другого программного обеспечения с открытым исходным кодом. В дополнение к основным функциям MySQL, MariaDB предлагает богатый набор улучшений функций, включая альтернативные механизмы хранения, оптимизацию серверов и другие исправления. В этом руководстве я собираюсь рассказать о том, как настроить сервер MariaDB с помощью SSL и как установить безопасные соединения с помощью консоли и PHP-скриптов.

При создании сертификатов SSL важно использовать 192.168.1.100 в качестве стандартного имени.

Шаг 1 – Установка MariaDB

Введите команду в соответствии с вашим вариантом Linux или Unix.

Установка MariaDB сервера/клиента на Ubuntu/Debian Linux

Введите одну из следующих команд: apt-get command или apt command:

$ sudo apt-get install mariadb-server mariadb-client

Установка MariaDB сервера/клиента на CentOS/RHEL/Fedora Linux

Введите следующую команду yum :

$ sudo yum install mariadb-server mariadb

Для пользователей Fedora Linux необходимо ввести команду dnf :

$ sudo dnf install mariadb-server mariadb

Установка MariaDB сервера/клиента на Arch Linux

Введите следующую команду pacman:

$ sudo pacman -S mariadb

Установка MariaDB сервера/клиента на FreeBSD unix

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

# cd /usr/ports/databases/mariadb100-server/ && make install clean # cd /usr/ports/databases/mariadb100-client/ && make install clean

Чтобы добавить бинарный пакет, введите:

# pkg install mariadb100-server mariadb100-client

Шаг 2 – Обеспечение безопасной установки MariaDB

Введите следующую команду:

$ mysql_secure_installation

Рисунок.01: Обезопасьте установку MariaDB

Шаг 3 – Создайте CA сертификат

Создайте директорию под названием ssl в /etc/mysql/ directory :

$ cd /etc/mysql $ sudo mkdir ssl $ cd ssl

Значение : Стандартное значение имени (Common Name), используемое для сертификатов / ключей сервера и клиента, должно отличаться от стандартного значения имени (Common Name), используемого для сертификата CA. Чтобы избежать каких-либо проблем, я устанавливаю их следующим образом:

Стандартное имя CA: MariaDB admin
Стандартное имя сервера: MariaDB server
Стандартное имя клиента: MariaDB client

Введите следующую команду для создания нового CA ключа:

$ sudo openssl genrsa 2048 > ca-key.pem

Примеры возможных выводов данных:


Рисунок.02: Создание CA ключа

Введите следующую команду для создания сертификата с помощью этого ключа:

$ sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem
Рисунок.03: Используя ключ CA, сгенерируйте сертификат CA для MariaDB

Примеры возможных выводов данных:

Теперь у вас должно быть два следующих файла::

  1. /etc/mysql/ssl/ca-cert.pem – Файл сертификата для Центра сертификации (Certificate Authority (CA)).
  2. /etc/mysql/ssl/ca-key.pem – Файл ключа для Центра сертификации (Certificate Authority (CA)).

Я собираюсь использовать оба файла для создания сертификатов сервера и клиента.

Шаг 4 – Создание сертификата сервера

Для создания ключа сервера, запустите:

$ sudo openssl req -newkey rsa:2048 -days 365000 -nodes -keyout server-key.pem -out server-req.pem

Примеры возможных выводов данных:


Рисунок 04: Создание ключа сервера для сервера MariaDB

Затем обработайте ключ RSA сервера, для этого введите:

$ sudo openssl rsa -in server-key.pem -out server-key.pem

Примеры возможных выводов данных:

Writing RSA key

Наконец, подпишите сертификат сервера, для этого запустите:

$ sudo openssl x509 -req -in server-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

Примеры возможных выводов данных:

Signature ok subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=MariaDB server Getting CA Private Key

Теперь у вас должны появиться дополнительные файлы:

  1. /etc/mysql/ssl/server-cert.pem – MariaDB файл сертификата сервера.
  2. /etc/mysql/ssl/server-key.pem – MariaDB файл ключа сервера.

Вы должны использовать не менее двух файлов на сервере MariaDB и любых других узлах, которые вы собираетесь использовать для трафика кластера/репликации. Эти два файла будут защищать связь на стороне сервера.

Шаг 5 – Создание сертификата клиента

Клиент mysql, и приложение PHP/Python/Perl/Ruby будет использовать сертификат клиента для защиты соединяемости клиента. Вы должны установить следующие файлы на всех ваших клиентах, включая веб-сервер. Чтобы создать клиентский ключ, запустите:

$ sudo openssl req -newkey rsa:2048 -days 365000 -nodes -keyout client-key.pem -out client-req.pem

Примеры возможных выводов данных:


Рисунок.05: Создание ключа клиента для сервера MariaDB

Затем обработайте ключ клиента RSA, для этого введите

$ sudo openssl rsa -in client-key.pem -out client-key.pem writing RSA key

Наконец, подпишите сертификат клиента, для этого запустите:

$ sudo openssl x509 -req -in client-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

Примеры возможных выводов данных:

Signature ok subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=MariaDB client Getting CA Private Key

Шаг 6 – Как проверить сертификаты?

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

$ openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem

Примеры возможных выводов данных:

Server-cert.pem: OK client-cert.pem: OK

Не должно быть никаких ошибок, и вы должны получить ответ OK для сертификатов сервера и клиента.

Шаг 7 – Настройте сервер MariaDB для использования SSL

Отредактируйте файл vi /etc/mysql/mariadb.conf.d/50-server.cnf или /etc/mysql/mariadb.cnf следующим образом:

$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

Добавьте следующим образом:

### MySQL Server ### ## Securing the Database with ssl option and certificates ## ## There is no control over the protocol level used. ## ## mariadb will use TLSv1.0 or better. ## ssl ssl-ca=/etc/mysql/ssl/ca-cert.pem ssl-cert=/etc/mysql/ssl/server-cert.pem ssl-key=/etc/mysql/ssl/server-key.pem

Сохраните и закройте файл. Вы можете перезапустить mariadb следующим образом:

$ sudo /etc/init.d/mysql restart

$ sudo systemctl restart mysql

Шаг 8 – Настройте клиент MariaDB для использования SSL

Настройте MariaDB клиент как 192.168.1.200 для использования SSL (добавьте в /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf ):

$ sudo vi /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

Добавьте в раздел:

## MySQL Client Configuration ## ssl-ca=/etc/mysql/ssl/ca-cert.pem ssl-cert=/etc/mysql/ssl/client-cert.pem ssl-key=/etc/mysql/ssl/client-key.pem ### This option is disabled by default ### ### ssl-verify-server-cert ###

Сохраните и закройте файл. Вы должны скопировать файлы /etc/mysql/ssl/ca-cert.pem , /etc/mysql/ssl/client-cert.pem и /etc/mysql/ssl/client-key.pem для всех ваших клиентов. Например:

{vivek@server}: rsync /etc/mysql/ssl/ca-cert.pem /etc/mysql/ssl/client-cert.pem /etc/mysql/ssl/client-key.pem \ user@client:/etc/mysql/ssl

Шаг 9 – Проверка

Введите следующую команду:

$ mysql -u {User-Name-Here} -h {Server-IP-here} -p {DB-Name-Here} $ mysql -u root -h 192.168.1.100 -p mysql $ mysql -u root -h 127.0.0.1 -p mysql

Введите следующую SHOW VARIABLES LIKE ‘%ssl%’; команду в MariaDB [(none)]> строке:

MariaDB [(none)]> SHOW VARIABLES LIKE "%ssl%";

ИЛИ выполните команду status:

MariaDB [(none)]> status;

Примеры возможных выводов данных:

Рисунок 06: Установление безопасного соединения с консолью и ее проверка

Проверьте соединения SSL и TLS. Следующая команда должна завершиться неудачей, так как ssl 3 не поддерживается и, соответственно, она не настроена для использования:

$ openssl s_client -connect 192.168.1.100:3306 -ssl3 140510572795544:error:140A90C4:SSL routines:SSL_CTX_new:null ssl method passed:ssl_lib.c:1878:

Проверьте TLS v 1/1.1/1.2:

$ openssl s_client -connect 192.168.1.100:3306 -tls1 $ openssl s_client -connect 192.168.1.100:3306 -tls1_1 $ openssl s_client -connect 192.168.1.100:3306 -tls1_2

Примеры возможных выводов данных:

CONNECTED(00000003) --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 5 bytes and written 7 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol: TLSv1 Cipher: 0000 Session-ID: Session-ID-ctx: Master-Key: Key-Arg: None PSK identity: None PSK identity hint: None SRP username: None Start Time: 1485335036 Timeout: 7200 (sec) Verify return code: 0 (ok) ---

Как читать файл захвата пакета tcpdump для проверки защищенной связи

Наконец, вы можете использовать анализатор пакетов команд tcpdump, который запускается под командной строкой, чтобы посмотреть порт 3306:

$ sudo tcpdump -i eth0 -s 65535 port 3306 -w /tmp/mysql.pcap

Теперь подключитесь к вашему приложению PHP/Python/Perl/Ruby mysql или консольному приложению mysql:

$ mysql -u bar -h 192.168.1.100 -p foo

Используйте tcpdump для проверки того, что никакая текстовая информация, включая пароли, не обменивается между сервером и клиентом. Это делается следующим образом:

$ tcpdump -r /tmp/mysql.pcap | less

Шаг 10 – Добавлениепользователя на MariaDB сервер

Введите следующую команду:

$ mysql -u root –p

Создайте базу данных под названием foo :

CREATE DATABASE foo;

Создайте пользователя с имение bar for для базы данных под названием foo :

GRANT ALL ON foo.* TO bar@localhost IDENTIFIED BY "mypassword" REQUIRE SSL;

Предоставление доступа с веб-сервера, размещенного по адресу 192.168.1.200 :

GRANT ALL ON foo.* TO [email protected] IDENTIFIED BY "mypassword" REQUIRE SSL;

Создайте безопасное соединение из оболочки bash

Вы можете войти в систему с консоли следующим образом:

$ mysql -u bar -p -h 192.168.1.100 foo

Создайте безопасное соединение из Python

Сначала установите интерфейс Python для MySQL:

$ sudo apt-get install python-mysql.connector

ИЛИ для Python v3.x

$ sudo apt-get install python3-mysql.connector

Здесь приведен пример кода Python для безопасного соединения с использованием:

#!/usr/bin/python import MySQLdb ssl = {"cert": "/etc/mysql/ssl/client-cert.pem", "key": "/etc/mysql/ssl/client-key.pem"} conn = MySQLdb.connect(host="192.168.1.100", user="bar", passwd="mypassword", ssl=ssl) cursor = conn.cursor() cursor.execute("SHOW STATUS LIKE "Ssl_cipher"") print cursor.fetchone()

#!/usr/bin/python # Note (Example is valid for Python v2 and v3) from __future__ import print_function import sys import mysql.connector from mysql.connector.constants import ClientFlag config = { "user": "bar", "password": "mypassword", "host": "192.168.1.100", "client_flags": , "ssl_ca": "/etc/mysql/ssl/ca-cert.pem", "ssl_cert": "/etc/mysql/ssl/client-cert.pem", "ssl_key": "/etc/mysql/ssl/client-key.pem", } cnx = mysql.connector.connect(**config) cur = cnx.cursor(buffered=True) cur.execute("SHOW STATUS LIKE "Ssl_cipher"") print(cur.fetchone()) cur.close() cnx.close()

Примеры возможных выводов данных:

("Ssl_cipher", "DHE-RSA-AES256-SHA")

Здравствуйте!

Я полностью поддерживаю Ваше решение! Я перевел свои серверы на MariaDB с MySQL 3 года назад и не от хорошей жизни. Версии MySQL после покупки его компанией Oracle становились все хуже и хуже. Постоянные падения и ошибки в таблицах плохо влияли на доступность сайтов, тогда было принято решение перейти на MariaDB.

Результат полностью себя оправдал, MariaDB очень стабильна и хорошо оптимизирована. Трехлетний аптайм без перерывов на нескольких серверах отлично это доказывает.

Выбор версии MariaDB

  • /var/run/php5-fpm.sock уже должен присутствовать на сервере? в ubuntu 16.04 не нашел такого файла в /var/run
  • Существует 2 ветки MariaDB - 5.x и 10.x.

    5.x - это версии, максимально приближенные к MySQL последних версий, они полностью совместимы с MySQL. Если вы только переходите на MariaDB с MySQL - эта линейка версий для вас.

    10.x - новая линейка версий, которую начали после версии 5.5. Эти версии полностью не копируют все новые функции последних версий MySQL, но содержат свои уникальные функции. Они по прежнему совместимы с MySQL, но, если вы только начинаете использовать MariaDB - лучше начать с версии 5.5.

    Установка MariaDB на Linux сервер

    Дистрибутивов MariaDB обычно нет в репозитариях основных дистрибутивов Linux (например в CentOS 6 и CentOS 7). Но, даже если бы были, лучше установить в систему родной репозитарий MariaDB, чтобы всегда иметь актуальные версии. Для установки репозитария yum следуйте инструкции:

    1. Создайте новый файл репозитария с помощью команды:

    vi /etc/yum.repos.d/MariaDB.repo

    Нажмите клавишу i для перехода в режим редактирования редактора vi.

    2. Получите текст файла для своей версии дистрибутива Linux по этой ссылке . Вам понадобится выбрать название дистрибутива, его версию и разрядность:

    Скопируйте текст для файла репозитария, вставьте его в свой файл и нажмите ":wq" для выхода из редактора vi с сохранением.

    Теперь можно установить MariaDB Server и программы окружения с помощью yum:

    yum install MariaDB-server MariaDB-client

    Библиотеки для различных языков программирования можно устанавливать для MySQL, они полностью совместимы. Например, для PHP:

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

    Если вы все сделали правильно, увидите такое сообщение:

    Настройка MariaDB

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

    Первоначальная установка root пароля MySQL:

    Самый простой способ установить пароль root - использовать специальный скрипт, он входит в дистрибутив MariaDB:

    /usr/bin/mysql_secure_installation

    Следуйте инструкциям и установите root пароль.

    Если у вас остались вопросы или нужны уточнения - пожалуйста, задайте вопрос или оставьте комментарий.

    Я всегда рад помочь!

    Что такое MariaDB

    MariaDB - это система управления базами данных (СУБД), которая основывается на MySQL и во многом с ней совместима.

    MariaDB и MySQL полностью совместимы в синтаксисе SQL запросов. То есть, если ваша программа использует базы данных MySQL (например, веб-сайт на PHP), то при переходе на MariaDB не нужно ничего менять в программе.

    MariaDB также бинарно совместима с коннекторами MySQL. Т.е. если вы используете коннекторы MySQL, то при переходе на MariaDB не нужно их менять.

    MariaDB совместима с форматами баз данных MySQL, но есть некоторые нюансы. Если вы переносите базы данных через экспорт/импорт (например, с помощью.SQL файла), то переносимые таким образом базы данных будут полностью совместимы между любыми версиями и не требуют каких-либо дальнейших действий. Тем не менее, если вы установили MariaDB поверх MySQL, то есть MariaDB использует файлы баз данных от MySQL, то нужно учитывать совместимость:

    • MariaDB 10.2 совместима с предыдущими версиями файлов данных MariaDB, а также с MySQL 5.6 и MySQL 5.7, но не совместима с MySQL 8.0.
    • MariaDB 10.1 совместима с предыдущими версиями файлов данных MariaDB, а также с MySQL 5.6.

    Дополнительная информация: https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/

    MariaDB работает на Windows и Linux. Эта программа с полностью открытым исходным кодом. Она распространяется как в форме исходных кодов, так и скомпилированных исполнимых файлов для Windows и всех популярных дистрибутивов Linux.

    Чем MariaDB лучше MySQL

    MariaDB поддерживает больше систем хранения (Storage Engines).

    В дополнении к стандартным MyISAM, BLACKHOLE, CSV, MEMORY, ARCHIVE, и MERGE движкам хранения, в MariaDB также имеются следующие:

    • ColumnStore, система хранения, ориентированная на столбцы, оптимизирована для хранилища данных.
    • MyRocks, система хранения с большим сжатием, добавлена с 10.2 версии
    • Aria, замена для MyISAM с улучшенным кэшированием.
    • FederatedX (замена для Federated)
    • OQGRAPH.
    • SphinxSE.
    • TokuDB.
    • CONNECT.
    • SEQUENCE.
    • Spider.
    • Cassandra.

    MariaDB имеет множество различных улучшений и оптимизаций в скорости обработки данных.

    MariaDB дополнена новыми расширениями и функциями.

    Скачать MariaDB для Windows

    MariaDB является бесплатной, настоятельно рекомендуется её скачивать с официального сайта. Страница для скачивания MariaDB: https://downloads.mariadb.org/

    Вы увидите несколько серий - несколько мажорных версий программы. Если вам не нужна какая-то специфическая совместимость с MySQL, то просто выберите самую последнюю версию и нажмите кнопку с «Download»

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

    Файлы Windows x86_64 - это 64-битные версии, а Windows x86 - 32-битные.

    .zip - это портативные версии, которые нужно устанавливать самостоятельно, но которые дают полную свободу в тонкой подстройке. А .msi - это установщик для Windows.

    В этой инструкции я покажу на примере работы с версией .zip .

    На следующей странице достаточно нажать кнопку: «No thanks, just take me to the download »:

    Установка MariaDB в Windows

    Для Windows СУБД MariaDB распространяется в виде установщика и ZIP архива. Я предпочитаю установку из ZIP архива, поскольку это позволяет полностью контролировать процесс.

    Установку во всех примерах я выполняю в папку C:\Server\bin\ , поскольку у меня MariaDB является частью веб-сервера, установленного по . Если у вас по-другому, то учитывайте это и делайте соответствующие поправки.

    mariadb и переместите в C:\Server\bin\ .

    Переместите папку C:\Server\bin\mariadb\data\ в папку C:\Server\data\DB\ .

    В папке C:\Server\bin\mariadb\ создайте файл my.cnf и скопируйте в него:

    Переход с MySQL на MariaDB в Windows

    Переход с MySQL на MariaDB с сохранением баз данных

    Можно выполнить переход разными способами. Я покажу самый универсальный метод, гарантирующий полную совместимость и отсутствие дальнейших проблем.

    Необходимо начать с создания резервной копии баз данных. Мы выполним это в командной строке с помощью утилиты (поставляется с MySQL и размещена в папке bin ).

    Откройте командную строку Windows. Для этого нажмите Win+x и выберите Windows PowerShell (администратор) . В открывшем окне выполните

    Перейдём в папку, где находится эта утилита (у вас может быть другой путь):

    Cd C:\Server\bin\mysql-8.0\bin\

    Сделайте дамп (резервную копию) всех баз данных следующей командой:

    Mysqldump.exe -u root -p --all-databases > all-databases.sql

    Теперь в папке C:\Server\bin\mysql-8.0\bin\ появится файл all-databases.sql - обязательно скопируйте его в безопасное место!

    Теперь остановите службу MySQL и удалите её из автозагрузки:

    Дополнительно скопируйте в безопасное место папку C:\Server\data\DB\data\ - это дополнительная резервная копия файлов баз данных MySQL - на тот случай, если с MariaDB что-то пойдёт не так и вы захотите вернуться к MySQL.

    Теперь удалите папки C:\Server\bin\mysql-8.0\ (бинарные файлы) и C:\Server\data\DB\data\ (базы данных).

    Распакуйте скаченный архив с MariaDB, переименуйте папку в mariadb и переместите в C:\Server\bin\ .

    Переместите папку C:\Server\bin\mariadb\data\ в папку C:\Server\data\DB\ .

    В папке C:\Server\bin\mariadb\ создайте файл my.cnf и скопируйте в него:

    Datadir="c:/Server/data/DB/data/"

    Для установки и запуска службы выполните команды:

    C:\Server\bin\mariadb\bin\mysqld --install net start mysql

    Для развёртывания баз данных из резервной копии, перейдите в папку C:\Server\bin\mariadb\bin\ :

    Cmd cd C:\Server\bin\mariadb\bin\

    И запустите команду вида:

    Mysql -uroot < C:\путь\до\файла\резервной_копии.sql

    Например, у меня файл all-databases.sql с резервной копией баз данных размещён в папке h:\Dropbox\!Backup\ , тогда моя команда такая:

    Mysql -uroot < h:\Dropbox\!Backup\all-databases.sql

    Дождитесь завершения импорта - если файл большой, то процесс может затянуться.

    Переход с MySQL на MariaDB без сохранения баз данных

    Остановите службу MySQL и удалите её из автозагрузки:

    Net stop mysql c:\Server\bin\mysql-8.0\bin\mysqld --remove

    Удалите папки C:\Server\bin\mysql-8.0\ (бинарные файлы) и C:\Server\data\DB\data\ (базы данных).

    Распакуйте скаченный архив с MariaDB, переименуйте папку в mariadb и переместите в C:\Server\bin\ .

    Переместите папку C:\Server\bin\mariadb\data\ в папку C:\Server\data\DB\ .

    В папке C:\Server\bin\mariadb\ создайте файл my.cnf и скопируйте в него:

    Datadir="c:/Server/data/DB/data/"

    Для установки и запуска службы выполните команды:

    C:\Server\bin\mariadb\bin\mysqld --install net start mysql

    Сейчас расскажу как установить MariaDB на Debian. Так же расскажу как ею пользоваться в своей теме «Установка MariaDB на Debian» все это будет подробно описано.

    MariaDB является лёгкой заменой MySQL. MariaDB является аналогом MySQL и она стремится быть лучшим выбором для специалистов по базам данных, которые ищут надежный, масштабируемый SQL Server. Это руководство поможет начинающим установить и понять суть работы MariaDB на Debian 7 и 6. Для достижения этой цели, MariaDB Foundation тесно сотрудничает и совместно работает с большим сообществом пользователей и разработчиков в истинном духе свободного и открытого программного обеспечения, и выпускает ПО таким образом, чтобы оно было с высокой надежностью.

    Толчком к созданию стала необходимость обеспечения свободного статуса СУБД (под лицензией GPL), в противовес неопределенной политике лицензирования MySQL компанией Oracle. Ведущий разработчик - Майкл Видениус, автор оригинальной версии MySQL и основатель компании Monty Program AB.

    В MariaDB произошел отказ от подсистемы хранения данных InnoDB и его замена на XtraDB. Также включены подсистемы Aria (en:Aria (storage engine)), PBXT и FederateX.

    Для начала, обновим ОС (чтобы было все самое новое):

    # apt-get update # apt-get upgrade

    Устанавливаем дополнения к питону:

    # sudo apt-get install python-software-properties

    Установка MariaDB

    Во-первых, нужно импортировать ключ GPG, для того что бы APT проверил целостность пакетов и загрузил все:

    # apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

    Создаем собственный MariaDB файл sources.list чтобы добавить репозиторий в него:

    # vim /etc/apt/sources.list

    Установка MariaDB 5.5 для Debian 7 wheezy

    # MariaDB 5.5 repository list - created 2014-11-15 17:08 UTC deb http://mirror.23media.de/mariadb/repo/5.5/debian wheezy main deb-src http://mirror.23media.de/mariadb/repo/5.5/debian wheezy main

    Установка MariaDB 5.5 для Debian 6 squeeze

    # MariaDB 5.5 repository list - created 2014-11-15 17:14 UTC deb http://mirror.23media.de/mariadb/repo/5.5/debian squeeze main deb-src http://mirror.23media.de/mariadb/repo/5.5/debian squeeze main

    Установка MariaDB 10.0 для Debian 7 wheezy

    # MariaDB 10.0 repository list - created 2014-11-15 17:21 UTC deb http://mirror.23media.de/mariadb/repo/10.0/debian wheezy main deb-src http://mirror.23media.de/mariadb/repo/10.0/debian wheezy main

    Установка MariaDB 10.0 для Debian 6 squeeze

    # MariaDB 10.0 repository list - created 2014-11-15 17:22 UTC deb http://mirror.23media.de/mariadb/repo/10.0/debian squeeze main deb-src http://mirror.23media.de/mariadb/repo/10.0/debian squeeze main

    Установка MariaDB 10.1 для Debian 7 wheezy

    # MariaDB 10.1 repository list - created 2014-11-15 17:23 UTC deb http://mirror.23media.de/mariadb/repo/10.1/debian wheezy main deb-src http://mirror.23media.de/mariadb/repo/10.1/debian wheezy main

    Установка MariaDB 10.1 для Debian 6 squeeze

    # MariaDB 10.1 repository list - created 2014-11-15 17:23 UTC deb http://mirror.23media.de/mariadb/repo/10.1/debian squeeze main deb-src http://mirror.23media.de/mariadb/repo/10.1/debian squeeze main

    После этого, обновляем систему (список всех репозиторией) и устанавливаем сервер с MariaDB:

    # sudo apt-get update # sudo apt-get install mariadb-server

    После чего начнется установка сервера MariaDB. Я выбрал 10.0 версию и по этому, приведу пример установки. В ходе установки, вас попросят ввесли пароль для MariaDB пользователя — root.

    Вводим пароль и нажимаем OK. Так же нужно ввести 2-й раз (подтверждение). Процесс установки займет пару минут.

    Использование MariaDB

    В этом разделе вы узнаете, как подключиться к MariaDB и как пользоваться основными командами SQL.

    Стандартный инструмент для взаимодействия с MariaDB является программа-клиент MySQL. Для начала, выполните следующую команду для подключения к MariaDB в качестве пользователя root:

    # mysql -u root -p

    Вводим пароль, тот который Вы вводили (создали) при установке.

    Давайте попробуем создать простую базу данных, которую мы позже будем заполнения данными. Введите следующие команды, чтобы создать базу данных с именем TEST_DB, владельцем которого будет являться новый пользователь Test_User, так же командой установим пароль secret_password для пользователя:

    MariaDB [(none)]> CREATE DATABASE test_db; MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO test_user@localhost IDENTIFIED BY "secret_password"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

    Последняя строка (команда) выходит из пользователя root на MariaDB. И сейчас войдем как пользователь test_user:

    # mysql -u testuser -p

    Введем команду для того чтобы использовать только что созданную БД (test_db):

    MariaDB [(none)]> USE test_db;

    Создайте новую таблицу и заполните ее некоторым данным:

    MariaDB [(none)]> CREATE TABLE products (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), price DECIMAL(6,2)); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("MacBook_Pro", 3200.0); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("Asus", 340.0); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("HP", 745.0);

    Убедитесь, что новые данные нормально вставлены:

    MariaDB [(none)]> SELECT * FROM products;

    Выйдите из клиента MariaDB выполнив:

    MariaDB [(none)]> quit

    Для получения дополнительной информации о командах SQL выполните:

    MariaDB [(none)]> \h

    Настройка MariaDB

    Чтобы настроить MariaDB нужно отредактировать файл с конфигурацией. Этот файл контролирует большую часть системных переменных сервера, которые вы, как правило, оставлены по умолчанию.

    # vim /etc/mysql/my.cnf

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

    # service mysql restart

    Безопастность MariaDB

    # mysql_secure_installation

    Вам будет предложено изменить пароль администратора, удалить анонимов, запретить вход за пределами локального хоста, удалить всех анонимов, и удалить тестовую базу данных. Рекомендуется, чтобы вы ответили «Y» на все вопросы.

    Удаленные соединения пользователей

    Давайте взглянем на то, как разрешить ранее созданному пользователю Test_User подключения к MariaDB удаленно (по умолчанию, MariaDB розрешает подключения только с локального хоста).

    Открытие сервера MariaDB к Интернету делает его менее безопасным. Если вам необходимо подключить с другого сервера, то убедитесь, что вы применили правила брандмауэра, разрешающие соединения только с определенных IP-адресов.
    Во-первых, мы должны предоставить пользовательские соединения с удаленными хостами для пользователя Test_user, для этого нужно войти в MariaDB как root:

    # mysql -u root -p

    Разрешаем пользователю Test_User подключения с удаленных хостов:

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO test_user@"%" IDENTIFIED BY "secret_password"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

    Настройка MariaDB слушать все сетевые интерфейсы. Откройте файл /etc/mysql/my.cnf:

    # vim /etc/mysql/my.cnf

    […]
    bind-address = 0.0.0.0
    […]

    Перезапустите сервер:

    # service mysql restart

    Проверка соединения с локального компьютера на вашем MariaDB сервере, заменив Test_User с вашим именем пользователя, и test_domain.com с вашим доменом или IP-адресом:

    # mysql -u test_user -h test_domain.com -p

    Если вошли успешно, вы должны увидеть приветствие MariaDB и shell prompt.

    Тюнинг MariaDB

    MySQL-тюнер является полезным инструментом, который подключается к работающему экземпляру MariaDB и предоставляет рекомендации по конфигурации на основе рабочей нагрузки. Вы должны позволить вашему экземпляру MariaDB работать не менее 24 часов перед запуском тюнера. Чем дольше экземпляр работает уже, тем лучший совет вам предложит тюнер.

    Установите MySQL тюнер, выполнив следующую команду:

    # apt-get install mysqltuner

    Запустите MySQL тюнер с помощью следующей команды:

    # mysqltuner

    После чего он вам выдаст много весьма полезной информации. Обратите внимание рекомендации в конце. Это укажет вам, что необходимо изменить (какие переменные должны быть настроины) в разделе вашего /etc/mysql/my.cnf файла.

    Как сбросить MariaDB root пароль?

    Если вы забыли свой пароль суперпользователя (пароль от root), вы можете легко сбросить его, следуя приведенным ниже инструкциям.

    Остановите сервер MariaDB:

    # service mysql stop

    Запустите сервер с skip-grant-tables, таким образом, вы можете войти на MariaDB без пароля:

    # mysqld_safe --skip-grant-tables &

    Теперь вы можете подключиться к серверу MariaDB как root без пароля:

    # mysql -u root

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

    MariaDB [(none)]> USE mysql MariaDB [(none)]> UPDATE user SET password=PASSWORD("yournewpassword") WHERE user="root"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

    Перезапустите сервер MariaDB:

    # service mysql restart

    Подключитесь к серверу MariaDB, используя новый пароль:

    # mysql -u root -p

    Установка MariaDB на Debian завершена. Надеюсь было понятно.