- Linux: Настройка сервера баз данных MySQL
- Установка сервера MySQL
- Настройка сервера MySQL
- Оптимизация параметров MySQL-сервера
- MySQL сервера баз данных конфигурации брандмауэра
- Увеличение дисковых квот и диапазона портов сервера БД
- Создание баз данных MySQL и учетных записей пользователей
- Проверьте вашу новенькую БД и пользовательские настройки с «удаленных» vm01 и vm02
- PhpMyAdmin
Linux: Настройка сервера баз данных MySQL
Перейдем ко второму практическому уроку серии и поговорим о настройке виртуального окружения выделенного сервера – подготовим узел (VM) предназначенный для хранения и обслуживания доступа к БД MySQL/PostgreSQL.
В этой установке, мы будем использовать сервер баз данных MySQL. Все настройки этого урока будут проводится исключительно на vm04 с IP-адресом 192.168.1.13
Установка сервера MySQL
# yum install mysql mysql-server
Настройка сервера MySQL
Отредактируем файл /etc/my.cnf:
Убедитесь, что MySQL сервер доступен с виртуальных машин vm01 и vm02 с установленными на нем Apache+php5. Найдите раздел [mysqld] и добавте/исправьте следующие параматеры, что бы mysqld служба БД стала доступна удаленно:
# Убедитесь, что директива skip-networking закомментирована (или удалена) # skip-networking # Включение удаленный доступ bind-address=192.168.1.13
Оптимизация параметров MySQL-сервера
Необходимо оптимизировать сервер MySQL, иначе он отъест весомую часть ресурсов виртуальной машины vm04. Вы можете добавить или исправить настройки следующим образом (подробнее — в руководстве по MySQL).
######################################################################## # Внимание. # Параметры безопасности и производительности # Читайте манны 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:
MySQL сервера баз данных конфигурации брандмауэра
Отредактируем конфигурацию брандмауэра /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
Увеличение дисковых квот и диапазона портов сервера БД
Для нагруженных серверов СУБД следует увеличить предельное количество дескрипторов файлов (FD limits) и увеличить число доступных IP-портов
# Увеличим предельное число дескрипторов файловой системы fs.file-max = 50000 # Увеличим число доступных портов net.ipv4. ip_local_port_range = 2000 65000
Активируем изменения, введя следующую sysctl-команду, изменяющую параметры ядра Linux исходя из указанных нами настроек:
Создание баз данных MySQL и учетных записей пользователей
- ИМЯ БД: foo
- ИМЯ ПОЛЬЗОВАТЕЛЯ БД: bar
- ПАРОЛЬ БД: mypassword
- КОМУ РАЗРЕШЕН ДОСТУП К БД: localhost, vm01, vm02 со следующими IP-адресами — 192.168.1.10 и 192.168.1.11
Введите следующую команду для создания БД и требующихся пользователей:
# /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, введите следующую команду:
Теперь можно создавать таблицы или загрузить данные, используя SQL-файл. Вы можете автоматизировать эту процедуру, написав шелл- или Perl-скрипт добавления пользователей MySQL и баз данных.
Проверьте вашу новенькую БД и пользовательские настройки с «удаленных» vm01 и vm02
Подключитесь через 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
PhpMyAdmin – известный web-интерфейс к БД MySQL. Этот серверный скрипт используется для удаленного администрирования MySQL с помощью одного лишь браузера. PhpMyAdmin может администрировать как весь сервер MySQL, так и одну базу данных. Этот пакет рекомендуется для всех новых пользователей базы данных MySQL и администраторов.
- Вводная часть
- Шаг №1: Настройка / Установка: NFS файловый сервер
- Шаг №2: Настройка / установка: сервер баз данных MySQL
- Шаг №3: Настройка / Установка: Memcached сервера кэширования
- Шаг №4: Настройка / Установка: Apache + php5 приложение веб-сервера
- Шаг №5: Настройка / Установка: веб-сервер Lighttpd для статических активов
- Шаг №6: Настройка / Установка: Nginx обратный (reverse) прокси-сервер
Ссылки на продолжение в конце поста будут проставлены в течение недели, по мере перевода и при вашем желании слушать дальше этот перевод.