Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
# su –l pgsql –c “initdb –E KOI8 –D /var/databases/postgres/data”
По умолчанию для FreeBSD установка исполнимых файлов происходит в папку /usr/local/bin. Если вы изменили это и новый путь не включен в переменную PATH, то потребуется указать полный путь к файлу initdb.
По окончании инициализации вам будет предложено два способа запуска процесса postmaster, который является сервером СУБД:
$ /usr/local/bin/postmaster –D /usr/local/pgsql/data
или
$ /usr/local/bin/pg_ctl –D /usr/local/pgsql/data –l logfile start
В первом случае запускается непосредственно процесс postmaster. Причем он будет выполняться в интерактивном режиме, то есть все его сообщения будут выдаваться на терминал запустившего его пользователя. Прерывание процесса приведет к остановке сервера СУБД (под сервером здесь понимается процесс postmaster, а не сам компьютер).
Такой режим работы может быть удобен на стадии отладки, но для реальной работы он явно неудобен. Можно, конечно, запустить его в фоновом режиме, указав в конце команды знак амперсанда (&), но мне больше нравится управлять процессом postmaster с помощью специально для этого разработанной утилиты pg_ctl.
В обоих вариантах ключ –D позволяет задать каталог, в котором хранятся данные. Каталог должен быть инициализирован командой initdb, как описывалось ранее. В принципе ничто не мешает инициализировать несколько каталогов данных и запустить одновременно несколько процессов postmaster (при этом также нужно позаботиться о том, чтобы каждый из них прослушивал свой порт). Один процесс может одновременно обслуживать только один каталог данных.
Теперь для проверки, что все работает так, как ожидается, присоединитесь к базе template1 следующей командой:
$ psql –U pgsql template1
Если вы получили приветствие Интерактивного Терминала PostgreSQL, значит, БД проинициализировалась и сервер запущен правильно. А если это сообщение еще и на русском языке, то вообще замечательно. Если же нет, то убедитесь, что переменная окружения LANG соответствует выбранной кодировке:
$ echo $LANG
ru_RU.KOI8-R
В случае возникновения проблем проанализируйте полученные сообщения об ошибках, поступающие на экран и в журнальные файлы (в зависимости от характера ошибки это могут быть файлы /var/log/pgsql, /var/log/messages и т. п.). Убедитесь, что вы запускаете PostgreSQL от имени созданного ранее пользователя pgsql (впрочем, имя может быть иным, например postgres). Запустите процесс postmaster в интерактивном режиме, как было описано выше. Если анализ диагностических сообщений не позволяет выявить источник проблем, может помочь возврат на стадию инсталляции и выполнение регрессионных тестов.
Итак, мы подключились к БД, интерактивный клиент общается с нами на нашем родном (или, по крайней мере, на очень знакомом) языке. Еще одна вещь, которую желательно дополнительно проверить, – кодировка, с которой БД была инициализирована. Для этого в терминале выполните команду l, которая выводит список всех БД:
$ psql -U pgsql template1
Добро пожаловать в psql 7.4.2 - Интерактивный Терминал PostgreSQL.
Наберите: copyright для условий распространения
h для подсказки по SQL командам
? для подсказки по внутренним slash-командам (команда)
g или ";" для завершения и выполнения запроса
q для выхода
template1=# l
Список баз данных
Имя | Владелец | Кодировка