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

Я полностью поддерживаю Ваше решение! Я перевел свои серверы на 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

    Я решил отказаться от использования MySQL, а точнее полностью перевести все свои сервера на ее форк — MariaDB. Пользуясь случаем, хочу рассказать о процессе установки MariaDB 10.1 в Debian 8. Следует отметить, что краткое описание установки MariaDB есть на официальной странице проекта. Я решил выделить этому вопросу отдельный пост, в котором хочу описать необходимые действия после установки MariaDB на сервере.

    Перед началом установки MariaDB необходимо добавить ее репозиторий. На сайте MariaDB рекомендуют для этого установить пакет software-properties-common . Я не вижу в этом никакого смысла и предпочитаю все делать вручную.

    Регистрируем GPG-ключ репозитория в системе:

    Apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

    Добавляем описание репозитория в файл sources.list . Открываем файл в редакторе nano:

    Nano /etc/apt/sources.list

    Копируем в конец следующие строки:

    Deb http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main deb-src http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main

    Обновляем список доступных пакетов:

    Apt-get update

    Запускаем процесс установки MariaDB 10.1:

    Apt-get install mariadb-server

    Во время установки нас попросят ввести пароль для пользователя root . На этом процесс установки MariaDB в Debian 8 закончен. А теперь переходим к настройке сервера.

    Чтобы повысить надежность нашего сервера, нужно выполнить минимальные требования безопасности. Запретить авторизацию под пользователем root с удаленных хостов. При наличии базы test и пользователя anonymous , нужно удалить их с сервера. Чтобы облегчить задачу используйте скрипт:

    Mysql_secure_installation

    Тип хранения данных по умолчанию

    Если необходимо изменить тип хранения данных по умолчанию, добавьте в файл my.cnf следующие строки:

    Default-storage-engine = innodb

    Убедитесь, что MariaDB использует таблицы InnoDB по умолчанию. Для этого выполните команду:

    SHOW ENGINES;

    Создать пользователя и базу MariaDB

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

    CREATE USER "USER_NAME"@"localhost" IDENTIFIED BY "PASSWORD";

    Создаем новую базу:

    CREATE DATABASE database_name;

    Даем полные права пользователю USER_NAME на базу databasename:

    GRANT ALL PRIVILEGES ON database_name.* TO "USER_NAME"@"localhost";

    Теперь нужно обновить все привилегии:

    FLUSH PRIVILEGES

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

    SHOW GRANTS FOR "USER_NAME"@"localhost";

    Бинарные логи

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

    Для отключения бинарных логов, комментируем строки в файле my.cnf:

    #log_bin = /var/log/mysql/mariadb-bin #log_bin_index = /var/log/mysql/mariadb-bin.index

    2 января, 2017 12:16 пп 13 224 views | Комментариев нет

    Требования

    • Сервер CentOS 7.
    • Пользователь с доступом к sudo.

    Все необходимые инструкции можно найти в .

    1: Установка MariaDB

    Чтобы установить MariaDB, используйте репозиторий Yum. Запустите следующую команду и нажмите y, чтобы продолжить.

    sudo yum install mariadb-server

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

    sudo systemctl start mariadb

    Команда systemctl не показывает вывод некоторых команд. Чтобы убедиться, что демон запущен, введите:

    sudo systemctl status mariadb

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

    Active: active (running)
    […]
    Dec 01 19:06:20 centos-512mb-sfo2-01 systemd: Started MariaDB database server.

    Теперь нужно настроить автозапуск MariaDB. Для этого введите:

    sudo systemctl enable mariadb
    Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

    После этого нужно обеспечить безопасность данных.

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

    После завершения установки нужно запустить встроенный сценарий безопасности MariaDB, который изменяет некоторые опции по умолчанию и блокирует удалённый root-логин. Чтобы запустить сценарий, введите:

    sudo mysql_secure_installation

    Сценарий предоставляет подробное описание каждого шага. Сначала он запросит root-пароль. Поскольку в новой установке такого пароля пока нет, просто нажмите Enter. После этого сценарий предложит вам создать такой пароль. Введите сложный пароль и подтвердите его.

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

    3: Тестирование MariaDB

    Теперь нужно убедиться, что установка MariaDB прошла успешно.

    Попробуйте подключиться к БД с помощью инструмента mysqladmin (это клиент для запуска команд администрирования). Чтобы подключиться к MariaDB как root (-u root), ввести пароль (-p) и запросить версию программы, введите команду:

    mysqladmin -u root -p version

    Команда выведет:

    mysqladmin Ver 9.0 Distrib 5.5.50-MariaDB, for Linux on x86_64
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
    Server version 5.5.50-MariaDB
    Protocol version 10
    Connection Localhost via UNIX socket
    UNIX socket /var/lib/mysql/mysql.sock
    Uptime: 4 min 4 sec
    Threads: 1 Questions: 42 Slow queries: 0 Opens: 1 Flush tables: 2 Open tables: 27 Queries per second avg: 0.172

    Это значит, что установка СУБД MariaDB прошла успешно.

    Заключение

    Теперь вы умеете выполнять базовую установку и настройку MariaDB.

    Я собираюсь установить 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")