Инсталиране и основна оптимизация на MariaDB на CentOS

В тази статия ще разгледам характеристиките на инсталирането, основната конфигурация и оптимизацията на сървъра на базата данни MariaDB. Моята задача беше да инсталирам MariaDB и да извърша основна конфигурация на Linux CentOS 7. Тъй като това е актуален проблем, надявам се статията да ви бъде полезна. В края на статията ще дам някои примери на конфигурационни файлове и можете да ги използвате, за да изберете параметрите за вашия сървър.

Съдържание:

  • Инсталирайте MariaDB на CentOS
  • Защита и сигурност MariaDB
  • Проверка на връзка с MariaDB сървър
  • Задаване на конфигурационен файл на MariaDB
  • Оптимизация и настройка на производителността MariaDB
  • Основни команди за работа в конзолата MariaDB

Инсталирайте MariaDB на CentOS

Наскоро MariaDB е включен в стандартното базово хранилище за CentOS 7, но това хранилище съдържа версия 5.5. Тази версия вече не е от значение, има проблеми с производителността и няма търсене в цял текст в InnoDB. В момента на писането текущата версия на MariaDB е 10.4, така че, свързвайки се към нашия Linux сървър чрез ssh, първо свързваме хранилището за програмисти mariadb.org и след това започваме да инсталираме сървъра на базата данни.

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

yum инсталирате nano -y

И отворете файла на хранилището за редактиране:

nano /etc/yum.repos.d/mariadb.repo

И добавете следната информация там:

[mariadb] име = MariaDB baseurl = http://yum.mariadb.org/10.4/centos7-amd64 gpgkey = https: //yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck = 1 

Запишете файла и стартирайте инсталацията:

сега инсталирате MariaDB сървър MariaDB-клиент -y

Инсталацията е завършена, сега трябва да добавите услугата за стартиране и стартиране:

systemctl start mariadb
systemctl активират mariadb

Проверете състоянието на услугата:

systemctl статус mariadb

Услугата Mariadb работи и работи, така че можете да продължите да конфигурирате.

Защита и сигурност MariaDB

След като инсталираме и стартираме MariaDB, можем да преминем към настройките за защита. Изпълнете вградения скрипт:

/ usr / bin / mysql_secure_installation

Този сценарий описва подробно всяка стъпка и няма да се спираме подробно на всяка от тях. Първо, той ще поиска корен парола, но след първоначалната инсталация тя не е там и затова натискаме enter и на следващия етап задаваме сложна парола (зависи от това колко защитен ще бъде вашият сървър). След това можете да натиснете „Enter“ до края на изпълнението на скрипта, анонимните потребители, отдалеченото коренно влизане, както и тестовите таблици ще бъдат изтрити и привилегиите ще бъдат презаредени.

За да се свържете със сървъра mariadb, трябва да създадете правила в защитната стена на Linux с помощта на iptables:

iptables -I INPUT -p tcp - доклад 3306 -m състояние - състояние НОВО, УСТАНОВЕНО -j ПРИЕМАНЕ
iptables-save> / etc / sysconfig / iptables

По желание можете да разрешите изходящи връзки към други бази данни на MariaDB.

iptables -I OUTPUT -p tcp - спорт 3306 -m състояние - състояние УСТАНОВЕН -j ПРИЕМАНЕ

Проверка на връзка с MariaDB сървър

Уверете се, че инсталацията на MariaDB е успешна.

Свържете се със сървъра на базата данни с помощта на вградения инструмент mysqladmin:

версия на mysqladmin

Командата ще доведе до резултата:

mysqladmin Ver 9.1 Distrib 10.4.7-MariaDB, за Linux на x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab и други. Версия на сървъра 10.4.7-MariaDB протокол версия 10 Връзка Localhost чрез UNIX сокет UNIX сокет /var/lib/mysql/mysql.sock Време: 11 мин. 35 сек. Теми: 7 Въпроси: 26 Бавни запитвания: 0 Отваря: 20 Таблици за промиване: 1 Отваряне на раздела

Това означава, че инсталацията на MariaDB е била успешна, базата данни е работеща и работи..

Можете да се свържете с конзолата на maridb сървъра, за да изпълнявате интерактивно командите sql:

mysql -u root -p

Задаване на конфигурационен файл на MariaDB

Обикновено след инсталирането на MariaDB добавям в конфигурационния файл /etc/my.cnf стандартната му конфигурация, която работи на повече сървъри и досега не е имало проблеми с базите данни. Почистете my.cnf и добавете следното:

[mysqld] local-infile = 0 datadir = / var / lib / mysql socket = / var / lib / mysql / mysql.sock symbolic-links = 0 max_allowed_packet = 128M sql_mode = "" log-error = / var / log / mysql -error.log # Cache параметри query_cache_size = 16M table_open_cache = 4096 = 16 thread_cache_size key_buffer_size = 8M thread_stack = 256K join_buffer_size = 2М sort_buffer_size = 2М # параметри за временни таблици TMPDIR = / ПТУ max_heap_table_size = 32M tmp_table_size = 32M # InnoDB параметри innodb_file_per_table innodb_buffer_pool_size = 32M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT innodb_use_native_aio = 0 транзакция-изолация = READ-COMMITTED символен набор-сървър = utf8 collation-server = utf8_unicode_ci init-connect = "SET NAMESryc__crypt___pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_pc_vcdc_pcdc_pcdc_pcdc_pc" имена max_allowed_packet = 128M набор от знаци по подразбиране = utf8 [mysql] [isamchk] key_buffer = 16M [mysqld_safe] log-error = / var / log / mariadb / mariadb.log pid-file = / var / run / mariadb / mariadb. PID 

За общо разбиране ще анализираме основните параметри на конфигурационния файл my.cnf:

  • DataDir - директория за съхранение на файлове на база данни;
  • TMPDIR - директория за съхранение на временни файлове;
  • пропуснете-име-решителност - деактивира DNS резолюцията;
  • max_allowed_packet - максимален размер на пакета Ако полета blob се използват в базата данни, трябва да зададете стойността поне на най-голямото поле;
  • max_connections - максимален брой отворени връзки, параметърът определя колко клиенти могат да работят със сървъра на базата данни едновременно;
  • раздел # Параметри на кеша - всичко, свързано с кеша на заявките; задаването на твърде високи стойности не се препоръчва, тъй като потреблението на ресурси от сървъра на базата данни ще расте;
  • раздел # Параметри InnoDB - всичко свързано с innodb таблици;
  • innodb_buffer_pool_size - кеш буфер за данни и индекси, ако на сървъра са разположени 1-2 проекта, задайте стойността на 70-80% от наличната RAM памет;
  • innodb_flush_method - за Linux, задайте стойността на O_DIRECT, това ще деактивира кеширането на ниво OS;
  • innodb_flush_log_at_trx_commit - този параметър се отразява на скоростта на запис на nedDB таблиците. Вземете сериозно този параметър, задавайки стойността на 0, получавате повече производителност, но рискът от загуба на данни се увеличава. Предпочитам да задам стойността на 2, тъй като не забелязах голямо увеличение в работата на сървъра на базата данни, а сигурността е преди всичко.

Оптимизация и настройка на производителността MariaDB

Искам да добавя, че не е нужно да разчитате конкретно на моя конфигурационен файл, препоръчително е да изберете свои собствени параметри за всеки сървър и за всеки проект. Препоръчвам да използвате скриптове, за да проверите автоматично конфигурацията на MariaDB, които след изпълнение дават някои препоръки за оптимизиране на сървъра.

Инсталирайте скрипта Tuning-Primer.sh:

yum инсталирате bc net-tools -y

Изтеглете сценария:

wget https://launchpadlibrarian.net/78745738/tuning-primer.sh

Ние даваме правата:

chmod + x tuning-primer.sh

Ние стартираме:

./tuning-primer.sh

След изпълнение скриптът ще ви даде цялата информация, с която трябва да се запознаете. Важните точки ще бъдат маркирани в червено и ще трябва да ги коригирате, когато е възможно..

Например, скриптът ми веднага показа, че броят на използваните връзки е много по-малък от този, който зададох:

Този параметър може да бъде променен, както във файла my.cnf, така и през конзолата, го намалих до 10 и скриптът ме похвали:

С помощта на подобни манипулации можете да доведете до идеалната работа на вашия сървър на база данни.

Искам да отбележа, че препоръчителното продължително време на работа на сървъра на базата данни е поне 48 часа, тогава информацията ще бъде по-точна и въз основа на това ще трябва да проведете настройка.

Към моя конфигурационен файл можете да добавите раздел, за да активирате дневника на бавните заявки, това ще ви помогне да анализирате работата на вашите проекти. В секцията "mysqld" добавете:

slow_query_log = 1 # активирате лога на бавните заявки long_query_time = 5 # задайте времето за секунди slow_query_log_file = /var/log/slow-query.log # име и път към лог файла на бавни заявки

Също така трябва да създадете лог файлове за MariaDB и бавни грешки в журнала за заявки:

докоснете /var/log/mysql-error.log
докоснете /var/log/slow-query.log

Ние извършваме рестарт на услугата:

systemctl рестартира mariadb

Можете да видите дневника на бавните заявки, като отворите файла /var/log/slow-query.log или го проверите в реално време:

опашка -f /var/log/slow-query.log

По този начин можете да анализирате заявките към базата данни на вашия проект и въз основа на това да извършите одит.

След всички промени в настройките на базата данни, трябва да проверите конфигурацията за грешки:

Бъдете сигурни, че след цялата работа с настройката на базите данни, проверете състоянието за грешки, като изпълните командата:

systemctl статус mariadb -l

Основни команди за работа в конзолата MariaDB

По-долу са основните команди кли, които администраторът най-често трябва да използва, когато работи в конзолата maridb.

За да влезете локално в конзолата MariaDB, изпълнете:

mysql -u root -p

За да се свържете дистанционно със сървъра на базата данни MariaDB:

mysql -u root -p -h 10.1.1.20

Полезни команди:

създаване на база данни db1; - създайте база данни с име db1

показване на бази данни; - списък на създадените бази данни

използвайте db1; - въведете базата данни с името db1

покажете таблици; - покажете таблиците на базата данни, в които се намираме

създайте потребител 'test' @ 'localhost', идентифициран от '123456'; - създайте потребителски тест и задайте парола 123456 (използвайте по-сложни пароли)

предоставете всички привилегии на името на базата данни. * за „тестване“ @ „localhost“; - дайте пълни права на потребителски тест

флаш привилегии; - актуализирайте всички привилегии

покажете списък с процеси; - вижте активните връзки в базата данни или можете да използвате командата:

покажи състоянието, където 'varia_name' = 'Свързани нишки';

Също така от конзолата mysql можете да преглеждате или променяте параметри, например:

ПОКАЖЕТЕ ВАРИАБЛИ, КАТО „max_error_count“;

да се промени:

SET max_error_count = 256;

В заключение бих искал да кажа, че когато настройвате сървър на база данни, трябва да разчитате на проекти, които ще бъдат хоствани на този сървър. Това, което е приложимо за малки проекти, по принцип може да не е подходящо за голям проект. Опитайте, експериментирайте и най-важното е винаги да гледате в трупите. В следващата статия ще покажем как да организираме висока наличност и да увеличим производителността на приложението, като използваме репликация между сървърите в MariDB.