Конфигурационни настройки на Mariadb. Как да конфигурирате MariaDB SSL и да установите защитени връзки от различни клиенти. Преминаване от MySQL към MariaDB на Windows
Реших да спра да използвам MySQL или по-скоро напълно да прехвърля всичките си сървъри на разклонението му - MariaDB. Използвайки тази възможност, бих искал да говоря за процеса на инсталиране на MariaDB 10.1 на Debian 8. Трябва да се отбележи, че Кратко описаниеИнсталациите на MariaDB са достъпни на официалната страница на проекта. Реших да посветя отделна публикация на този въпрос, в която искам да опиша необходимите действия след инсталиране на MariaDB на сървъра.
Преди да инсталирате MariaDB, трябва да добавите нейното хранилище. Уебсайтът MariaDB препоръчва инсталирането на софтуерни свойства-общ пакет за това. Не виждам смисъл в това и предпочитам да правя всичко ръчно.
Регистрирайте GPG ключа на хранилището в системата:
Apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
Добавете описание на хранилището към файла sources.list. Отворете файла в нано редактора:
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 актуализация
Нека започнем инсталационния процес на MariaDB 10.1:
Apt-get инсталирате mariadb-сървър
По време на инсталацията ще бъдем помолени да въведем парола за root потребител. Това завършва процеса на инсталиране на MariaDB на Debian 8. Сега нека да преминем към настройката на сървъра.
За да увеличим надеждността на нашия сървър, трябва да направим минимални изискваниясигурност. Забранете упълномощаването под root потребител от отдалечени хостове. Ако има тестова база данни и анонимен потребител, трябва да ги премахнете от сървъра. За да улесните задачата, използвайте скрипта:
Mysql_сигурна_инсталация
Тип съхранение на данни по подразбиране
Ако трябва да промените типа съхранение на данни по подразбиране, добавете следните редове към файла my.cnf:
Default-storage-engine = innodb
Уверете се, че MariaDB използва InnoDB таблици по подразбиране. За да направите това, изпълнете командата:
ПОКАЖЕТЕ ДВИГАТЕЛИ;
Създайте потребител и база данни на MariaDB
За да създадете потребител в MariaDB, използвайте командата по-долу:
CREATE USER "USER_NAME"@"localhost" ИДЕНТИФИЦИРАН С "PASSWORD";
Създайте нова база данни:
CREATE DATABASE име на_база_данни;
Ние даваме пълни права на потребителя USER_NAME върху базата данни с имена на бази данни:
ПРЕДОСТАВЯЙТЕ ВСИЧКИ ПРИВИЛЕГИИ НА database_name.* НА "USER_NAME"@"localhost";
Сега трябва да актуализирате всички привилегии:
ПРОМИВАЙТЕ ПРИВИЛЕГИИ
За да видите привилегиите, изпълнете командата:
ПОКАЗВАНЕ НА ГРАНТОВЕ ЗА "USER_NAME"@"localhost";
Двоични дневници
MariaDB записва всички промени в базата данни в двоичен журнал; това е необходимо, за да работи механизмът за репликация. Ако не сте направили резервни копия или те са остарели, двоичните регистрационни файлове могат да се използват за възстановяване на данни. Въпреки това, няма гаранция, че данните ще бъдат напълно или частично възстановени. Успехът ще зависи от размера, времето за съхранение на двоичните регистрационни файлове и честотата на архивирането.
За да деактивирате двоичните регистрационни файлове, коментирайте редовете във файла my.cnf:
#log_bin = /var/log/mysql/mariadb-bin #log_bin_index = /var/log/mysql/mariadb-bin.index
Търся да инсталирам MariaDB SSL (Secure Sockets Layer), както и защитени връзки от MySQL клиент и PHP приложение. Как да активирам SSL за MariaDB сървър и клиент, работещ на Linux или Unix-подобна система?
MariaDB е сървър за бази данни, който предлага функционалностклинове за MySQL сървър.
MariaDB е създадена от някои от оригиналните автори на MySQL с помощта на по-широк екип от безплатни разработчици и други софтуеротворен код. В допълнение към основните функции на MySQL, MariaDB предлага богат набор от подобрения на функциите, включително алтернативни машини за съхранение, оптимизации на сървъра и други поправки. В това ръководство Ще говоря за това как да настроя MariaDB сървър с SSL и как да установя защитени връзкис помощта на конзолата и PHP скриптове.
Когато създавате SSL сертификати, е важно да използвате 192.168.1.100 като стандартно име.
Стъпка 1 – Инсталирайте MariaDB
Въведете командата според вашия Linux или Unix вариант.
Инсталиране на MariaDB сървър/клиент на Ubuntu/Debian Linux
Въведете една от следните команди: apt-get команда или apt команда:
$ sudo apt-get инсталирате mariadb-сървър mariadb-клиент
Инсталиране на MariaDB сървър/клиент на CentOS/RHEL/Fedora Linux
Въведете следната команда yum:
$ sudo yum инсталирайте mariadb-сървър mariadb
За потребители на Fedora Linux трябва да въведете командата dnf:
$ sudo dnf инсталирайте mariadb-сървър mariadb
Инсталиране на MariaDB сървър/клиент на Arch Linux
Въведете следната команда pacman:
$ sudo pacman -S mariadb
Инсталиране на MariaDB сървър/клиент на FreeBSD unix
За да зададете порта, изпълнете:
# cd /usr/ports/databases/mariadb100-server/ && направи инсталацията чиста # cd /usr/ports/databases/mariadb100-client/ && направи инсталацията чиста
За да добавите двоичен пакет, въведете:
# pkg инсталирайте mariadb100-сървър mariadb100-клиент
Стъпка 2 – Осигуряване на защитена инсталация на MariaDB
Въведете следната команда:
$mysql_сигурна_инсталация
Фигура 01: Защитете инсталацията на MariaDBСтъпка 3 – Създайте CA сертификат
Създайте директория, наречена ssl в /etc/mysql/ директория:
$ cd /etc/mysql $ sudo mkdir ssl $ cd ssl
Значение: Общото име, използвано за сертификатите/ключовете на сървъра и клиента, трябва да е различно от общото име, използвано за CA сертификата. За да избегна проблеми, ги инсталирам така:
Стандартно CA име: Администратор на MariaDB
Стандартно име на сървъра: MariaDB сървър
Стандартно клиентско име: MariaDB клиент
Въведете следната команда, за да създадете нов 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 – Файл със сертификат за Сертифициращия орган (CA).
- /etc/mysql/ssl/ca-key.pem – Ключов файл за Сертифициращия орган (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
Примери за възможни изходни данни:
Писане на RSA ключ
Накрая подпишете сертификата на сървъра, като изпълните:
$ 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
Примери за възможни изходни данни:
Подпис ok subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=MariaDB сървър Получаване на 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 писане на RSA ключ
Накрая подпишете клиентския сертификат, като изпълните:
$ 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
Примери за възможни изходни данни:
Подпис ok subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=MariaDB клиент Получаване на CA Private Key
Стъпка 6 – Как да проверя сертификати?
Въведете следната команда, за да проверите сертификатите, за да сте сигурни, че всичко е създадено правилно:
$ openssl проверка -CAfile ca-cert.pem сървър-cert.pem клиент-cert.pem
Примери за възможни изходни данни:
Server-cert.pem: OK client-cert.pem: OK
Не трябва да има грешки и трябва да получите отговор OK за сертификатите на сървъра и клиента.
Стъпка 7 – Конфигурирайте MariaDB Server да използва SSL
Редактирайте файла vi /etc/mysql/mariadb.conf.d/50-server.cnf или /etc/mysql/mariadb.cnfпо следния начин:
$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
Добавете така:
### Моя SQL сървър### ## Защита на базата данни с ssl опция и сертификати ## ## Няма контрол върху нивото на използвания протокол. ## ## mariadb ще използва TLSv1.0 или по-добър. ## ssl ssl-ca=/etc/mysql/ssl/ca-cert.pem ssl-cert=/etc/mysql/ssl/server-cert.pem ssl-key=/etc/mysql/ssl/server-key. пем
Запазете и затворете файла. Можете да рестартирате mariadb по следния начин:
$ sudo /etc/init.d/mysql рестартирайте
$ sudo systemctl рестартирайте 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 клиент ## ssl-ca=/etc/mysql/ssl/ca-cert.pem ssl-cert=/etc/mysql/ssl/client-cert.pem ssl-key=/etc/mysql/ssl/ client-key.pem ### Тази опция е деактивирана по подразбиране ### ### 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 (Потребителско-име-тук) -h (IP-адрес на сървъра-тук) -p (DB-име-тук) $ 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 [(няма)]> ред:
MariaDB [(няма)]> ПОКАЗВАЙТЕ ПРОМЕНЛИВИ КАТО "%ssl%";
ИЛИ изпълнете командата за състояние:
MariaDB [(няма)]> състояние;
Примери за възможни изходни данни:
Фигура 06: Установяване на защитена връзка с конзолата и нейното тестванеПроверете SSL връзкии TLS. Следната команда трябва да е неуспешна, защото ssl 3 не се поддържа и следователно не е конфигуриран за използване:
$ openssl s_client -connect 192.168.1.100:3306 -ssl3 140510572795544:грешка:140A90C4:SSL процедури:SSL_CTX_new:нулев ssl метод премина: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) --- няма наличен партньорски сертификат --- Няма изпратени CA имена на клиентски сертификат --- SSL ръкостискането е прочело 5 байта и е записало 7 байта --- Ново, (НЯМА), Шифърът е (НЯМА) Сигурно предоговаряне IS НЕ се поддържа Компресия: НЯМА Разширяване: НЯМА Няма договорена ALPN SSL-сесия: Протокол: TLSv1 Cipher: 0000 Session-ID: Session-ID-ctx: Master-Key: Key-Arg: Няма PSK идентичност: Няма Подсказка за PSK идентичност: Няма SRP потребителско име: Няма Начално време: 1485335036 Изчакване: 7200 (сек) Проверете кода за връщане: 0 (ок) ---
Как да прочетете tcpdump файл за улавяне на пакети, за да тествате защитени комуникации
И накрая, можете да използвате анализатора на пакети с команда tcpdump, който работи под командния ред, за да разгледате порт 3306:
$ sudo tcpdump -i eth0 -s 65535 порт 3306 -w /tmp/mysql.pcap
Сега се свържете с вашето приложение PHP/Python/Perl/Rubyконзолно приложение mysql или mysql:
$ mysql -u бар -h 192.168.1.100 -p foo
Използвайте tcpdump, за да проверите дали между сървъра и клиента не се обменя текстова информация, включително пароли. Това се прави по следния начин:
$ tcpdump -r /tmp/mysql.pcap | по-малко
Стъпка 10 – Добавяне на потребител към сървъра MariaDB
Въведете следната команда:
$ mysql -u root –p
Създайте база данни, наречена foo:
СЪЗДАВАНЕ НА БАЗА ДАННИ foo;
Създайте потребителско име бар за за база данни, наречена foo:
ПРЕДОСТАВЯНЕ НА ВСИЧКИ НА foo.* НА bar@localhost ИДЕНТИФИЦИРАН ОТ "моята парола" ИЗИСКВАЙТЕ SSL;
Предоставяне на достъп от уеб сървър, намиращ се на 192.168.1.200:
ПРЕДОСТАВЯНЕ НА ВСИЧКИ НА foo.* TO [имейл защитен]ИДЕНТИФИЦИРАН ОТ "моята парола" ИЗИСКВА SSL;
Създайте защитена връзка от bash shell
Можете да влезете от конзолата по следния начин:
$ mysql -u bar -p -h 192.168.1.100 foo
Създайте защитена връзка от Python
Първо инсталирайте интерфейса Pythonза MySQL:
$ sudo apt-get инсталирайте python-mysql.connector
ИЛИ за Python v3.x
$ sudo apt-get инсталирайте 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("ПОКАЗВАЙ СТАТУТ КАТО "Ssl_cipher"" ) print cursor.fetchone()
#!/usr/bin/python # Забележка (Примерът е валиден за Python v2 и v3) от __future__ import print_function import sys import mysql.connector от mysql.connector.constants import ClientFlag config = ( "user": "bar", " парола": "моята парола", "хост": "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= Вярно) cur.execute("ПОКАЗВАЙ СТАТУТ КАТО "Ssl_cipher"") print(cur.fetchone()) cur.close() cnx.close()
Примери за възможни изходни данни:
("Ssl_cipher", "DHE-RSA-AES256-SHA")
Сега ще ви кажа как да инсталирате MariaDB на Debian. Също така ще ви кажа как да го използвате в моята тема „Инсталиране на MariaDB на Debian“; всичко това ще бъде описано подробно.
MariaDB е лек заместител на MySQL. MariaDB е подобна на MySQL и има за цел да бъде най-добър изборза професионалисти в бази данни, които търсят надежден, мащабируем SQL Server. Това ръководство ще помогне на начинаещите да инсталират и разберат MariaDB на Debian 7 и 6. За да постигне тази цел, MariaDB Foundation работи в тясно сътрудничество и сътрудничество с голяма общност от потребители и разработчици в истинския дух на безплатния софтуер с отворен код и пуска софтуер в начин, по който е много надежден.
Импулсът за създаването му беше необходимостта да се осигури свободен статус на СУБД (под GPL лиценз), за разлика от неясната лицензионна политика на MySQL от Oracle. Водещият разработчик е Michael Widenius, автор на оригиналната версия на MySQL и основател на Monty Program AB.
MariaDB изостави подсистемата за съхранение InnoDB и я замени с XtraDB. Включени са също подсистемите Aria (en:Aria (storage engine)), PBXT и FederateX.
Първо, нека актуализираме ОС (така че всичко да е ново):
# apt-get актуализация # apt-get ъпгрейд
Инсталиране на добавки на Python:
# sudo apt-get инсталирайте 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 списък с хранилища - създаден 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 стискане
# Списък с хранилища на MariaDB 5.5 - създаден 2014-11-15 17:14 UTC deb http://mirror.23media.de/mariadb/repo/5.5/debian стиснете главния deb-src http://mirror.23media.de/mariadb /repo/5.5/debian squeeze main
Инсталиране на MariaDB 10.0 за Debian 7 wheezy
# MariaDB 10.0 списък с хранилища - създаден 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 стискане
# MariaDB 10.0 списък с хранилища - създаден 2014-11-15 17:22 UTC deb http://mirror.23media.de/mariadb/repo/10.0/debian стиснете главния deb-src http://mirror.23media.de/mariadb /repo/10.0/debian squeeze main
Инсталиране на MariaDB 10.1 за Debian 7 wheezy
# MariaDB 10.1 списък с хранилища - създаден 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 стискане
# MariaDB 10.1 списък с хранилища - създаден 2014-11-15 17:23 UTC deb http://mirror.23media.de/mariadb/repo/10.1/debian стиснете главния deb-src http://mirror.23media.de/mariadb /repo/10.1/debian squeeze main
След това актуализираме системата (списък на всички хранилища) и инсталираме сървъра с MariaDB:
# sudo apt-get актуализация # sudo apt-get инсталирайте mariadb-сървър
След което ще започне инсталирането на сървъра MariaDB. Избрах версия 10.0 и поради тази причина ще дам пример за инсталация. По време на инсталацията ще бъдете помолени да въведете паролата за потребителя на MariaDB - root.
Въведете паролата и щракнете върху OK. Трябва да въведете и втория път (потвърждение). Процесът на инсталиране ще отнеме няколко минути.
Използване на MariaDB
В този раздел ще научите как да се свържете с MariaDB и как да използвате основни SQL команди.
Стандартният инструмент за взаимодействие с MariaDB е клиентската програма MySQL. За да започнете, изпълнете следната команда, за да се свържете с MariaDB като root:
# mysql -u root -p
Въведете паролата, която сте въвели (създали) по време на инсталацията.
Нека се опитаме да създадем проста база данни, която по-късно ще попълним с данни. Въведете следните команди, за да създадете база данни с име TEST_DB, която ще бъде собственост на новия потребител Test_User, и също така задайте паролата secret_password за потребителя:
MariaDB [(няма)]> СЪЗДАВАНЕ НА БАЗА ДАННИ test_db; MariaDB [(няма)]> ПРЕДОСТАВЯНЕ НА ВСИЧКИ ПРИВИЛЕГИИ НА test_db.* НА test_user@localhost, ИДЕНТИФИЦИРАН ОТ "secret_password"; MariaDB [(няма)]> FLUSH ПРИВИЛЕГИИ; MariaDB [(няма)]> излезте
Последният ред (команда) излиза от root потребителя на MariaDB. А сега нека влезем като потребител test_user:
# mysql -u testuser -p
Нека въведем командата за използване на новосъздадената база данни (test_db):
MariaDB [(няма)]> USE test_db;
Създайте нова таблица и я попълнете с някои данни:
MariaDB [(няма)]> CREATE TABLE продукти (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, име VARCHAR(255), цена DECIMAL(6,2)); MariaDB [(няма)]> INSERT INTO products (име, цена) VALUES ("MacBook_Pro", 3200.0); MariaDB [(няма)]> INSERT INTO products (име, цена) VALUES ("Asus", 340.0); MariaDB [(няма)]> INSERT INTO products (име, цена) VALUES ("HP", 745.0);
Уверете се, че новите данни са въведени правилно:
MariaDB [(няма)]> ИЗБЕРЕТЕ * ОТ продукти;
Излезте от клиента MariaDB, като изпълните:
MariaDB [(няма)]> излезте
За получаване Допълнителна информацияО SQL командинаправи:
MariaDB [(няма)]>\h
Настройване на MariaDB
За да конфигурирате MariaDB, трябва да редактирате конфигурационния файл. Този файл контролира повечето от системните променливи на сървъра, които обикновено оставяте по подразбиране.
# vim /etc/mysql/my.cnf
рестартирайте сървъра, като изпълните следната команда:
# услуга mysql рестартиране
Сигурност на MariaDB
# mysql_сигурна_инсталация
Ще бъдете подканени да промените администраторската парола, да премахнете анонимни потребители, да деактивирате влизанията извън локалния хост, да изтриете всички анонимни потребители и да изтриете тестовата база данни. Препоръчително е да отговаряте с „Y“ на всички въпроси.
Отдалечени потребителски връзки
Нека да разгледаме как да позволим на създадения преди това Test_User да се свърже дистанционно с MariaDB (по подразбиране MariaDB позволява само връзки от локалния хост).
Излагането на сървъра MariaDB на интернет го прави по-малко защитен. Ако трябва да се свържете от друг сървър, уверете се, че прилагате правила на защитната стена, които позволяват връзки само от определени IP адреси.
Първо, трябва да предоставим персонализирани връзки към отдалечени хостове за потребителя Test_user, като влезем в MariaDB като root:
# mysql -u root -p
Позволете на потребителя Test_User да се свърже от отдалечени хостове:
MariaDB [(няма)]> ПРЕДОСТАВЯНЕ НА ВСИЧКИ ПРИВИЛЕГИИ НА test_db.* НА test_user@"%" ИДЕНТИФИЦИРАН ОТ "secret_password"; MariaDB [(няма)]> FLUSH ПРИВИЛЕГИИ; MariaDB [(няма)]> излезте
Конфигуриране на MariaDB за слушане на всички мрежови интерфейси. Отворете файла /etc/mysql/my.cnf:
# vim /etc/mysql/my.cnf
[…]
свързващ адрес = 0.0.0.0
[…]
Рестартирайте сървъра:
# услуга mysql рестартиране
Проверка на връзката с локален компютърна вашия MariaDB сървър, като замените Test_User с вашето потребителско име и test_domain.com с вашия домейн или IP адрес:
# mysql -u test_user -h test_domain.com -p
Ако сте влезли успешно, трябва да видите поздрава на MariaDB и командния прозорец.
Настройка на MariaDB
MySQL тунер е полезен инструмент, който се свързва с работещ екземпляр на MariaDB и предоставя препоръки за конфигурация въз основа на натоварването. Трябва да оставите екземпляра на MariaDB да работи поне 24 часа, преди да стартирате тунера. Колкото по-дълго работи копието, толкова по-добър съвет ще ви предложи тунерът.
Инсталирайте MySQL тунера, като изпълните следната команда:
# apt-get инсталирайте mysqltuner
Стартирайте MySQL тунера със следната команда:
# mysqltuner
След което той ще ви даде много полезна информация. Моля, обърнете внимание на препоръките в края. Това ще ви каже какво трябва да се промени (кои променливи трябва да се конфигурират) в секцията /etc/mysql/my.cnf на вашия файл.
Как да нулирате паролата за root на MariaDB?
Ако сте забравили вашата суперпотребителска парола (root парола), можете лесно да я нулирате, като следвате инструкциите по-долу.
Спрете сървъра MariaDB:
# услуга mysql спиране
Стартирайте сървъра с skip-grant-tables, за да можете да влезете в MariaDB без парола:
# mysqld_safe --skip-grant-tables &
Вече можете да се свържете към сървъра MariaDB като root без парола:
# mysql -u root
В клиента MariaDB въведете следните команди, за да нулирате паролата на root и да излезете:
MariaDB [(няма)]> ИЗПОЛЗВАЙТЕ mysql MariaDB [(няма)]> АКТУАЛИЗИРАНЕ потребител SET password=PASSWORD("вашата нова парола") WHERE user="root"; MariaDB [(няма)]> FLUSH ПРИВИЛЕГИИ; MariaDB [(няма)]> излезте
Рестартирайте MariaDB сървъра:
# услуга mysql рестартиране
Свържете се със сървъра MariaDB, като използвате нова парола:
# mysql -u root -p
Инсталирането на MariaDB на Debian е завършено. Надявам се, че беше ясно.
| |1: Инсталирайте MariaDB
Debian 9 съдържа пакета MariaDB 10.1 в стандартното хранилище. Това е опцията за MySQL по подразбиране.
За да го инсталирате, актуализирайте индекса на пакета:
Сега инсталирайте пакета:
sudo apt инсталирате mariadb-сървър
Командата ще инсталира MariaDB, но няма да ви подкани да изберете парола или да промените други настройки. В момента инсталацията на MariaDB има няколко уязвимости, които трябва да бъдат адресирани.
2: Настройване на MariaDB
След като инсталацията приключи, трябва да изпълните защитен скрипт, който ще премахне ненадеждните параметри и ще защити базата данни от неоторизиран достъп.
sudo mysql_secure_installation
Сценарият ще задава поредица от въпроси. Първо трябва да предоставите вашата root парола за MariaDB. Това е административен акаунт в MariaDB, който има повишени привилегии. Току-що инсталирахте MariaDB и все още не сте направили промени в конфигурацията, все още нямате тази парола, така че просто натиснете Enter.
В следващата заявка скриптът ще ви помоли да конфигурирате root паролата за базата данни. Въведете N и натиснете Enter. В Debian основният акаунт на MariaDB е тясно свързан с автоматизирана поддръжкасистеми, така че промяна стандартни методиТози акаунт не може да бъде удостоверен. В противен случай, когато актуализирате пакета, базата данни може да бъде повредена и достъпът до root акаунта може да бъде загубен. По-късно ще разгледаме как да конфигурирате допълнителни сметкаадминистратор, ако удостоверяването на сокет не е подходящо за вас.
За други въпроси можете да натиснете Y и Enter. Това ще премахне анонимни потребители и тестови бази данни, ще деактивира отдалечените root влизания и ще актуализира текущите настройки на MariaDB.
3: Конфигуриране на поддръжка за удостоверяване на парола
При новите инсталации на Debian root потребителят на MariaDB по подразбиране поддържа удостоверяване с помощта на плъгина unix_socket вместо с помощта на парола. Това подобрява сигурността и използваемостта в много случаи, но също така може да направи нещата по-трудни, ако трябва да разрешите достъп външна програма(например phpMyAdmin).
Тъй като сървърът използва root потребител за задачи като ротация на регистрационни файлове и стартиране и спиране на сървъра, най-добре е да не променяте удостоверяването на root акаунта. Промяната на идентификационните данни във файла /etc/mysql/debian.cnf може да работи първоначално, но по-нататъшните актуализации на пакета ще презапишат тези промени. Вместо това разработчиците препоръчват създаване на отделен администраторски акаунт с удостоверяване с парола.
Така че, създайте акаунт, наречен администратор, със същите права като root, но с поддръжка за удостоверяване с парола. За да направите това, отворете командния ред на MariaDB в терминал:
Сега създайте нов потребител с root привилегии и поддръжка за удостоверяване на парола. Посочете вашето потребителско име и парола в командата.
ПРЕДОСТАВЯНЕ НА ВСИЧКИ НА *.* НА "admin"@"localhost", ИДЕНТИФИЦИРАНО ОТ "парола" С ОПЦИЯ ЗА ПРЕДОСТАВЯНЕ;
Нулиране на привилегии:
ПРИВИЛЕГИИ ЗА ПРОМИВАНЕ;
Затворете обвивката на MariaDB:
4: Тестване на MariaDB
Когато се инсталира от стандартното хранилище, MariaDB стартира автоматично. За да проверите това, проверете състоянието на услугата:
sudo systemctl status mariadb
mariadb.service - MariaDB сървър на бази данни
Заредено: заредено (/lib/systemd/system/mariadb.service; активирано; предварително зададено от доставчика: активирано)
Активен: активен (работи) от вторник 2018-09-04 16:22:47 UTC; преди 2 часа и 35 минути
Процес: 15596 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSIT
Процес: 15594 ExecStartPost=/etc/mysql/debian-start (код=излязъл, статус=0/УСПЕХ)
Процес: 15478 ExecStartPre=/bin/sh -c [! -e /usr/bin/galera_recovery ] && VAR= ||
Процес: 15474 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITI
Процес: 15471 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysql
Основен PID: 15567 (mysqld)
Състояние: „Приемане на вашите SQL заявки сега...“
Задачи: 27 (лимит: 4915)
CGroup: /system.slice/mariadb.service
└─15567 /usr/sbin/mysqld
04 септември 16:22:45 deb-mysql1 systemd: Стартиране на сървър на база данни MariaDB...
04 септември 16:22:46 deb-mysql1 mysqld: 2018-09-04 16:22:46 140183374869056 /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) стартира като процес 15567 ...
04 септември 16:22:47 deb-mysql1 systemd: Стартира сървър на база данни MariaDB.
Ако СУБД не стартира по някаква причина, въведете:
sudo systemctl стартирайте mariadb
За допълнителна проверка можете да опитате да се свържете с базата данни с помощта на инструмента mysqladmin (това е клиент, който ви позволява да изпълнявате административни команди). Например, тази команда ще се свърже с MariaDB като root и ще изведе версията с помощта на Unix сокет:
sudo mysqladmin версия
mysqladmin Версия 9.1 Distrib 10.1.26-MariaDB, за debian-linux-gnu на x86_64
Авторско право (c) 2000, 2017, Oracle, MariaDB Corporation Ab и други.
Версия на сървъра 10.1.26-MariaDB-0+deb9u1
Версия на протокола 10
Връзка Localhost чрез UNIX сокет
UNIX сокет /var/run/mysqld/mysqld.sock
Време на работа: 2 часа 44 мин. 46 сек
Теми: 1 Въпроси: 36 Бавни заявки: 0 Отваряния: 21 Изчистване на таблици: 1 Отворени маси: 15 Заявки за секунда средно: 0,003
Ако сте създали допълнителен администратор, можете да извършите тази операция с помощта на командата:
mysqladmin -u администратор -p версия
MariaDB работи и работи правилно.
Какво е 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.
- СВЪРЗВАНЕ.
- ПОСЛЕДОВАТЕЛНОСТ.
- Паяк.
- Касандра.
MariaDB има много различни подобрения и оптимизации в скоростта на обработка.
MariaDB е актуализирана с нови разширения и функции.
Изтеглете MariaDB за Windows
MariaDB е безплатна и е силно препоръчително да я изтеглите от официалния уебсайт. Страница за изтегляне на MariaDB: https://downloads.mariadb.org/
Ще видите няколко епизода - няколко основни версии на програмата. Ако не се нуждаете от конкретна съвместимост с MySQL, просто изберете най-много последна версияи щракнете върху бутона „Изтегляне“
Тъй като тази програма работи на различни операционна система, тогава в следващия прозорец ще видите голям избор от файлове за изтегляне.
файлове Windows x86_64- това са 64-битови версии и Windows x86- 32-битов.
.zip- Това са преносими версии, които трябва да се инсталират самостоятелно, но дават пълна свобода при фина настройка. А .msiе инсталатор за Windows.
В тази инструкция ще ви покажа пример за работа с версията .zip.
На Следваща страницапросто натиснете бутона: “ Не, благодаря, просто ме отведете до изтеглянето»:
Инсталиране на 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 и се намира в папката кошче).
Отворете командния ред 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\файлът ще се появи всички бази данни.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
Например имам файл всички бази данни.sqlс резервно копиебази данни се намират в папката h:\Dropbox\!Архивиране\, тогава командата ми е следната:
Mysql -uroot< h:\Dropbox\!Backup\all-databases.sql
Изчакайте, докато импортирането приключи - ако файлът е голям, процесът може да отнеме повече време.
Преминаване от MySQL към MariaDB без запазване на бази данни
Спрете услугата MySQL и я премахнете от стартиране:
Net stop mysql c:\Server\bin\mysql-8.0\bin\mysqld --премахване
Изтриване на папки 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