- PVSM.RU - https://www.pvsm.ru -
Перейдем ко второму практическому уроку серии и поговорим о настройке виртуального окружения выделенного сервера – подготовим узел (VM) предназначенный для хранения и обслуживания доступа к БД MySQL/PostgreSQL.
В этой установке, мы будем использовать сервер баз данных MySQL. Все настройки этого урока будут проводится исключительно на vm04 с IP-адресом 192.168.1.13
Введите следующую команду yum-менеджера [1], что бы установить MySQL сервера баз данных на RHEL/CentOS Linux [2] систему:
# yum install mysql mysql-server
Отредактируем файл /etc/my.cnf:
# vi /etc/my.cnf
Убедитесь, что MySQL сервер доступен с виртуальных машин vm01 и vm02 с установленными на нем Apache+php5. Найдите раздел [mysqld] и добавте/исправьте следующие параматеры, что бы mysqld служба БД стала доступна удаленно [3]:
# Убедитесь, что директива skip-networking закомментирована (или удалена)
# skip-networking
# Включение удаленный доступ
bind-address=192.168.1.13
Необходимо оптимизировать сервер MySQL, иначе он отъест весомую часть ресурсов виртуальной машины vm04. Вы можете добавить или исправить настройки следующим образом (подробнее — в руководстве по MySQL [4]).
########################################################################
# Внимание!!!
# Параметры безопасности и производительности
# Читайте манны mysqld и my.cnf для получения подробной информации
# т.к. следующие параметры зависят от установленного оборудования и
# конкретных требований к системе
########################################################################
# Из соображений безопасности рекомендуется отключить использование
# symbolic-links
symbolic-links=0
## Идем дальше, пропуская ряд прописанных параметров, YMMV
skip-name-resolve
skip-slave-start
skip-external-locking
# ИНДИВИДУАЛЬНЫЕ КЛИЕНТСКИЕ НАСТРОЙКИ #
# Завышенные параметры, но мои ресурсы позволяют #
sort_buffer_size = 2M
read_buffer_size = 2M
binlog_cache_size = 1M
wait_timeout = 200
interactive_timeout = 300
max_allowed_packet = 12M
thread_stack = 128K
table_cache = 1024
myisam_sort_buffer_size = 1M
tmp_table_size = 12M
max_heap_table_size = 12M
# ПРОТОКОЛИРОВАНИЕ #
log_queries_not_using_indexes = 1
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/slowquery.log
# Кэши и предельные значения #
tmp_table_size = 12M
max_heap_table_size = 12M
query_cache_type = 1
query_cache_limit = 2M
query_cache_size = 32M
max_connections = 500
thread_cache_size = 50
open_files_limit = 65535
table_definition_cache = 4096
table_open_cache = 1024
# MyISAM #
key_buffer_size = 32M
myisam_recover = FORCE,BACKUP
# БЕЗОПАСНОСТЬ #
max_allowed_packet = 16M
max_connect_errors = 1000000
# Бинарный лог #
log_bin = /var/lib/mysql/mysql-bin
expire_logs_days = 14
sync_binlog = 1
# InnoDB #
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_buffer_pool_size = 10G
Сохраним изменения и закроем файл. Перезагрузим/перезапустим сервер MySQL:
# chkconfig mysqld on
# service mysqld start
# service mysqld reload
# service mysqld restart
Убедимся, что на TCP-порту #3306 работает mysqld:
# netstat -tulpn | grep :3306
Отредактируем конфигурацию брандмауэра /etc/sysconfig/iptables [5]:
# vi /etc/sysconfig/iptables
Убедитесь, что виртуальные машины vm01 и vm02 могут получить доступ к серверу баз данных:
## Откройте порты mysqld для web-сервера Apache и Lighttpd #
-A INPUT -m state --state NEW -s 192.168.1.10 -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -s 192.168.1.11 -m tcp -p tcp --dport 3306 -j ACCEPT
Сохраните и закройте файл. Перезапустим службу iptables [6]:
# service iptables restart
Для нагруженных серверов СУБД следует увеличить предельное количество дескрипторов файлов (FD limits [7]) и увеличить число доступных IP-портов [8]
# Увеличим предельное число дескрипторов файловой системы
fs.file-max = 50000
# Увеличим число доступных портов
net.ipv4. ip_local_port_range = 2000 65000
Активируем изменения, введя следующую sysctl-команду, изменяющую параметры ядра Linux исходя из указанных нами настроек:
# sysctl -p
В данном разделе приводятся основные параметры ручного создания базы данных MySQL.Для наглятности нашей задачи мы создадим базу данных MySQL и пользователя [9] со следующими параметрами:
Введите следующую команду для создания БД и требующихся пользователей:
# /usr/bin/mysql -u root -h localhost -p
Чтобы создать БД с именем foo, введите следующую команду в строке терминала mysql:
mysql > CREATE DATABASE foo;
Необходимо предоставить права доступа к этой БД пользователю MySQL с именем bar, под которым сервера приложений Apache + php5 будут подключаться к БД.
mysql > GRANT ALL ON foo.* TO bar@localhost IDENTIFIED BY 'mypassword';
mysql > GRANT ALL ON foo.* TO bar@192.168.1.10 IDENTIFIED BY 'mypassword';
mysql > GRANT ALL ON foo.* TO bar@192.168.1.11 IDENTIFIED BY 'mypassword';
Что бы выйти из консоли MySQL, введите следующую команду:
mysql > quit
Теперь можно создавать таблицы или загрузить данные, используя SQL-файл. Вы можете автоматизировать эту процедуру, написав шелл- или Perl-скрипт добавления пользователей MySQL и баз данных [10].
Подключитесь через ssh к виртуальному узлу vm01 или узлу vm03 и введите следующую команду, чтобы проверить связь с Apache/Lighttpd web-сервером:
$ mysql -u bar -h 192.168.1.13 -p'mypassword' foo
или так:
$ mysql -u bar -h vm04 -p'mypassword' foo
PhpMyAdmin [11] – известный web-интерфейс к БД MySQL. Этот серверный скрипт используется для удаленного администрирования MySQL с помощью одного лишь браузера. PhpMyAdmin может администрировать как весь сервер MySQL, так и одну базу данных. Этот пакет рекомендуется для всех новых пользователей базы данных MySQL и администраторов.
Автор: danielnewman
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/nginx/11675
Ссылки в тексте:
[1] yum-менеджера: http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/
[2] установить MySQL сервера баз данных на RHEL/CentOS Linux: http://www.cyberciti.biz/faq/how-to-install-mysql-under-rhel/
[3] mysqld служба БД стала доступна удаленно: http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
[4] руководстве по MySQL: http://dev.mysql.com/doc/refman/5.5/en/
[5] /etc/sysconfig/iptables: http://www.cyberciti.biz/faq/centos-fedora-rhel-nfs-v4-configuration/
[6] Перезапустим службу iptables: http://www.cyberciti.biz/faq/howto-start-iptables-under-rhel-centos-linux/
[7] FD limits: http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/
[8] увеличить число доступных IP-портов: http://www.cyberciti.biz/tips/linux-increase-outgoing-network-sockets-range.html
[9] создадим базу данных MySQL и пользователя: http://www.cyberciti.biz/faq/mysql-user-creation/
[10] шелл- или Perl-скрипт добавления пользователей MySQL и баз данных: http://bash.cyberciti.biz/mysql/add-database-username-password-remote-host-access/
[11] PhpMyAdmin: http://www.phpmyadmin.net/home_page/index.php
Нажмите здесь для печати.