телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Конфигурационни настройки на 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

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

Сега трябва да имате следните два файла:

  1. /etc/mysql/ssl/ca-cert.pem – Файл със сертификат за Сертифициращия орган (CA).
  2. /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

Сега трябва да имате допълнителни файлове:

  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 писане на 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



Свързани публикации