You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ХАКЕР.PROГрафические инструменты для работы с СУБДИ MySQL, и PostgreSQL не обделены средствами для более комфортной работы с СУБД. Прежде всего, следует отметитьвездесущий PHP-инструментарий: phpPgAdmin и phpMyAdmin. Также для PostgreSQL нужно выделить утилиту pgAdmin— простой, но в то же время достаточно удобный способ администрировать базу.«diff -u my-large.cnf my-small.cnf». Для небольшойдомашней машины вполнеподойдет шаблон my-small.cnf, которыйследует скопировать в /etc под именемmy.cnf. Для более крупных инсталляцийлучше просмотреть самому один из выбранныхшаблонов и подогнать параметрыпод оптимальные значения в зависимостиот объема имеющейся в наличии памяти.Если ты планируешь использовать таблицытипа InnoDB, то my.cnf нужно будет обязательноподредактировать — по умолчаниювсе, что касается этих таблиц, в немзакомментировано.Отыщи в конфигурационном файле в секции[mysqld] следующие строки, снимикомментарии и приведи в соответствие сосвоими потребностями:# Путь к каталогу, где будут размещеныInnoDB-таблицы:innodb_data_home_dir = /var/db/mysql/innodb/db/# Имя файла хранилища, его первоначальныйразмер (10 Мб)# и разрешение на автоматическоерасширение при необходимости:innodb_data_file_path =ibdata1:10M:autoextend# Каталог хранения журналов иархивов# (если есть возможность, лучшевыносить на отдельный винт):innodb_log_group_home_dir = /var/db/mysql/innodb/log/innodb_log_arch_dir = /var/db/mysql/innodb/log/# Память, отводимая под буферы(если на машине работает что-то,# кроме mysql, лучше не подниматьвыше 30-70% от объема ОЗУ):innodb_buffer_pool_size = 16Minnodb_additional_mem_pool_size= 2M# Размеры журнальных файлов (рекомендуетсядержать на уровне# 20-25% от размера буферов):innodb_log_file_size = 5Minnodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 1innodb_lock_wait_timeout = 50/ 156xàêåðПриведенные цифры, естественно, можноменять в зависимости от конкретной ситуации— от ресурсопотребления другихпроцессов, работающих на этой жемашине, объема памяти и т.д. Каталоги, указанныев конфигурации, должны существовать(в том смысле, что их придется создатьвручную до того, как сервер будет перезапущенс новыми параметрами) и принадлежатьпользователю mysql:$ sudo -u mysql mkdir -p /var/db/mysql/innodb/{db,log}В опции innodb_data_file_path можно указыватьнесколько файлов. При первом запускесервера после внесения изменений в конфигурациюбудет выполнена инициализацияуказанных хранилищ:$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql --datadir=/var/db/mysqlStarting mysqld daemon withdatabases from /var/db/mysqlСразу замечу, что остановить запущенныйсервер можно такой командой:$ sudo kill `sudo cat /var/db/mysql/toshiba.pid`Для удобства команды запуска и остановаможно оформить в виде стартовогосценария. Еще одна причина воспользоватьсядистрибутивной установкой — там всеэто уже сделано.Таблицы формата MyISAM будут размещатьсяв указанном каталоге «пофайлово», в то времякак таблицы InnoDB размещаются в одномили нескольких файлах-хранилищах, согласноконфигурационному файлу.В PostgreSQL поддерживается один тип хранилищаданных, поэтому все несколько проще— нужно создать каталог, где будет располагатьсяхранилище, сделать его владельцемпольз ов ателя postg res и выполнитьинициализацию:$ sudo mkdir -p /var/db/pgsql/data$ sudo chown postgres /var/db/pgsql/data$ sudo su postgres$ cd /usr/local/pgsql/bin$ ./initdb -D /var/db/pgsql/data$ exitПосле инициализации будет выведенопредупреждение, что для локальных подключенийразрешена так называемая trust-аутентификация(об этом — чуть позже), и показаныдва способа запустить сервер. В первом случае— «postgres -D /var/db/pgsql/data» — серверзапустится в интерактивном режиме, то естьинформация о его работе будет отображатьсяв окне терминала, а при закрытии терминаласервер будет остановлен. Безусловно, работающийпроцесс всегда можно перевести в фоновыйрежим, либо сразу указав символ «&» послекоманды, либо в дальнейшем приостановивего работу комбинацией клавиш и затемвозобновив в фоне с помощью утилиты bg:$ sudo -u postgres ./postgres -D/var/db/pgsql/dataLOG: database system was shutdown at 2006-12-16 13:58:54 MSK...LOG: database system is ready// здесь нажали [1]+ Stopped sudo -u postgres ./postgres -D /var/db/pgsql/data$ bg[1]+ sudo -u postgres ./postgres -D/var/db/pgsql/data &Управление сервером с помощью pg_ctl, намой взгляд, более удобно, и в этом случаесервер будет сразу запущен как фоновыйпроцесс. Только нужно не забывать, чтообе команды должны быть выполнены отимени пользователя postgres. В приведенномвыше примере это выполняется с помощьюутилиты sudo. Если запуск сервера прошел безошибок, значит, для работы все готово.А если возникнут какие-либо проблемы, тоони достаточно подробно будут расписаныв сообщениях, выводимых на экран илив лог. Чаще всего они бывают связаны с правамидоступа: либо не того пользователясделали владельцем хранилища, либо отимени неправильного пользователя запускается02 /98/ 07