Сейчас расскажу как установить 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 [email protected] 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 [email protected]"%" 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 завершена. Надеюсь было понятно.
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.
В данной статье мы рассмотрим как установить и настроить Linux, Apache, MariaDB, PHP на Centos7 /RHEL 7. В новой версии Centos7 /RHEL 7 много изменений.
Что такое LAMP?
LAMP — комплект программного обеспечения на ОС, состоящей из операционной системы Linux, веб-сервера Apache, сервера базы данных MySQL и языка программирования PHP (или Perl / Python) . LAMP используется для работы тяжелых динамических веб-сайтов полностью состоящий из свободного программного обеспечения с открытым исходным кодом. В этой статье я собираюсь объяснить, как Linux, Apache, MySQL / MariaDB (замена для MySQL), PHP (LAMP) устанавливаются на CentOS 7 или RHEL 7.
- Устанавливаем RHEL 7 или CentOS 7 сервер. Открываем терминал к серверу по ssh, у Вас должны быть права суперпользователя root.
- Вам также понадобятся знания команд yum
- Вам понадобится IP адрес вашего сервера, используйте следующую комманду, что бы определить IP адрес для интерфейса eth0
- Полученный IP 10.180.10.10 адрес будем использовать для тестирования установки
Итак приступим
Установка Apache on a CentOS 7 /RHEL 7 сервер
Для установки веб сервера используем команду
Yum install httpd
Включите службу HTTPd в автозагрузки
systemctl enable httpd.service ln -s "/usr/lib/systemd/system/httpd.service" "/etc/systemd/system/multi-user.target.wants/httpd.service"Чтобы отключить, автоматическую загрузку
Systemctl disable httpd.service rm "/etc/systemd/system/multi-user.target.wants/httpd.service"
Запустите HTTPd службу на CentOS 7 / RHEL 7
systemctl start httpd.serviceНа данном этапе вы можете указать в веб-браузере IP-адрес вашего сервера, http://10.180.10.10. Вы увидите стартовую страницу apache:
Остановка HTTPd службы на CentOS 7 / RHEL 7
systemctl stop httpd.serviceПерезапуск HTTPd службы на CentOS 7 / RHEL 7
Просмотр статуса apache службы на CentOS 7 / RHEL 7
Убедитесь что веб сервер запущен
Systemctl status httpd.service
Также перезапуск веб сервера может быть выполнен следующей командой
Apachectl graceful
Проверка apache / httpd на наличие ошибок конфигурации в Centos 7/ RHEL 7
Apachectl configtest
Конфигурация по умолчанию HTTPD сервера:
- По умолчанию конфигурационный файл: /etc/httpd/conf/httpd.conf
- Файлы конфигурации, загружаемых модулей: /etc/httpd/conf.modules.d/ (например, PHP)
- Выберите MPMs как загружаемые модули и события: / etc/httpd/conf.modules.d/00-mpm.conf
- Стандартные порты: 80 и 443 (SSL)
- Файлы журналов по умолчанию: /var/log/httpd/{access_log,error_log}
Установка MariaDB на сервере CentOS 7 / RHEL
MariaDB — обновленная замена для сервера MySQL. На RHEL / CentOS 7 вместо MySQL используется система управления базами данных MariaDB. Введите следующую yum команду для установки MariaDB сервера:
Yum install mariadb-server mariadb
Для запуска MariaDB, используйте команду:
Systemctl start mariadb.service
Чтобы убедиться, что сервис MariaDB запускается автоматически во время загрузки, введите:
Systemctl enable mariadb.service
Вывод команды
Ln -s "/usr/lib/systemd/system/mariadb.service" "/etc/systemd/system/multi-user.target.wants/mariadb.service"
Чтобы остановить / перезапуск и отключить MariaDB используйте следующие команды:
Sudo systemctl stop mariadb.service #-- Остановить mariadb сервер sudo systemctl restart mariadb.service #-- Перзапусить mariadb сервер sudo systemctl disable mariadb.service #-- Отключить автозагрузку mariadb сервер sudo systemctl is-active mariadb.service #-- Проверка запущен ли сервер?
Первый запуск MariaDB
Введите следующую команду:
/usr/bin/mysql_secure_installation
Отвечая на вопросы Вы сможете настроить первоначальную безопасность БД
Проверка установки MariaDB
Введите следующую команду
Mysql -u root -p
Пример вывода:
Установка PHP на CentOS 7 / RHEL 7
Для установки PHP и модулей, такие как GD / mysql введите следующую комманду
Yum install php php-mysql php-gd php-pear
Необходимо перезагрузить HTTPD (Apache) сервер, введите:
Systemctl restart httpd.service
Для поиска всех других PHP модулей:
Yum search php-
Чтобы получить более подробную информацию о модуле:
Yum info php-pgsql
Проверка PHP на сервере
Создайте файл с именем /var/www/html/test.php следующим образом:
Vi /var/www/html/test.php
Добавьте следующий код:
LAMP сервер установлен, если у вас есть проблемы с настройкой сервера, мы производим разовые работы по установке и настройке web сервера LAMP .
Я собираюсь установить 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
Примеры возможных выводов данных:
Теперь у вас должно быть два следующих файла::
- /etc/mysql/ssl/ca-cert.pem – Файл сертификата для Центра сертификации (Certificate Authority (CA)).
- /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
Теперь у вас должны появиться дополнительные файлы:
- /etc/mysql/ssl/server-cert.pem – MariaDB файл сертификата сервера.
- /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 для всех ваших клиентов. Например:
{[email protected]}: rsync /etc/mysql/ssl/ca-cert.pem /etc/mysql/ssl/client-cert.pem /etc/mysql/ssl/client-key.pem \ [email protected]:/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 [email protected] 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 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 завершена.