XP. postgresql-8.3.6-2. инсталяция по дефолту с размещение м кластера в папке постгреса проходит нормально. но как разместить в специально отведенном месте так и не понятно: initdb -D mypath
(пишет что все файлы будут принедлежать активному акаунту, не postgres).
postgres -D mypath - пишет про что-то не про привилегированных пользователей и конмпромис...
Может подскажите как переместить кластер?
Комментарии
читать тут
читать тут http://postgresql.ru.net/manual/runtime-config-file-locations.html
чему у вас равен параметр data_directory?
Также не понятно:
какая конкретно возникает ошибка?
какой пользователь postgres имеется в виду - ОС или постгреса?
Есть альтернатива - использовать табличные пространства для хранения данных в нужном месте.
Выполняю
Выполняю инсталяцию:
1 В форме создания вин-пользователя postgres - ввожу пароль (пользователь в виндосе уже есть - остался с прошлых инсталяций).
2 В форме создания кластера - снимаю галочку (планирую разместить в другом месте).
Инсталяция проходит успешно:
3 В службах появилась PostgreSQL Database Server 8.3 со строкой запуска D:\default_path\8.3\bin\pg_ctl.exe runservice -w -N "pgsql-8.3" -D "D:\default_path\8.3\data\"
4 в каталоге "D:\default_path\8.3\data\" папка data пустая
Пытаюсь разместить кластер в другом месте:
- набираю initdb -D mypath
отчет: Файлы, сопутствующие этой системе баз данных, будут принадлежать пользователю "my_win_user". Этот
пользователь также должен быть владельцем процесса сервера.... (не знаю хорошо это или прохо - но компьютер и должен работать под этим пользователем)
- набираю postgres -D mypath
отчет: Execution of postgressql by a user with administrative permissions is not permitted. The server must be started under un privileged user ID to prevent ...
Про data_directory - при инсталяции кластер не создавал - поэтому папка data пустая и postgresql.conf не существует.
Tablespace конечно выход - но хочется сделать все по науке.
Может кто-то указать что не так?
здесь про это
здесь про это кое-что есть
http://archives.postgresql.org//pgsql-patches/2006-01/msg00172.php
и тут
http://forums.devshed.com/postgresql-help-21/please-help-install-pgsql-7...
патчи *.patch - но
патчи *.patch - но как их пользовать?
не понятно другое - если ставить кластер по умолчанию в папку постгреса - все работает
Мне кажется,
Мне кажется, что вы что-то где-то пропускаете.
Давайте по порядку.
1. Деинсталируйте постгрес.
2. Удалите пользователя в винде.
3. Удалите папку постгреса (на всякий случай)
4. Устанавливайте согласно инструкции http://postgresql.ru.net/docs/win_inst.html
5. На ту папку, в которую собираетесь кидать базу, дайте доступ созданному пользователю
6. Удалите сервис. sc delete pgsql-8.3
7. И создайте его на свою папку
sc create pgsql-8.3 binPath= "C:\Progra~1\PostgreSQL\8.3\bin\pg_ctl.exe runservice -w -N "pgsql-8.3" -D "C:\Progra~1\PostgreSQL\8.3\data\"" (последний путь, понятно, нужно заменить на свой)
Это мои соображения не проверенные на практике (поскольку лень), может натолкнет на мысль.
Нигде не
Нигде не говорится каким должен быть виндос пользователь postgres админом или обычным пользователем - 5. На ту папку, в которую собираетесь кидать базу, дайте доступ созданному пользователю. К тому же какой должен быть доступа к папке...
а sc create - спасибо...
Тот
Тот пользователь, который создается при установке (postgres) не состоит ни в одной группе, поэтому не имеет никаких прав. Ему даны права только на папку C:\...\Data и от его имени запускается служба сервера. Поэтому если вы хотите, чтобы служба имела доступ к другой папке - есть 3 варианта:
Доступ должен быть на изменение.
Как давать доступ (на случай, если кто-то не знает):
Проводник - меню Сервис - Свойства папки - Вид - отключить "Использовать простой общий доступ к папкам"
После чего в свойствах папок и файлов появляется вкладка "Безопасность", где нужно добавить пользователя и дать ему доступ.
С учетом
С учетом советов сделал так. Установил постгрес заново, предварительно удалил винпользователя: служба работает, кластер запущен из папки 1. При всем этом винпользователь ни в какую группу не входит.
- делаю initdb -d папка 2
- удаляю установленную службу работающую из папки 1
- даю в папку 2 аналогичный уровень доступа что и на папке 1 (которую создал инсталятор)
- устанавливаю службу для пуска кластера из папки 2
- запускаю службу - по середине останавливается - потом пишет - службе нечего делать - остановлена.
- пытаюсь создать и запустить службу сконфигурированную на кластер из папки 1 (та что создана самим инсталятором). по середине останавливается - потом пишет - службе нечего делать - остановлена.
делаю винпользователя админом: пытаюсь запустить службу с кластером в папке 1 - по середине останавливается - потом пишет - службе нечего делать - остановлена.
все понятно - только не работает
может проще так
может проще так http://postgresql.ru.net/node/117568
Еще такая вещь -
Еще такая вещь - пытаюсь апгрейдить установленный 8.3.6 на 8.3.7. Идет так инсталяция идет и между делом пишет - близко к тексту но не дословно "... нет доступа на установку системных служб..." и кнопка отмены. и апгрейд откатывается. Может здесь и проблема. Но вот что ето такое - никак не могу найти
Читайте
Читайте описание к релизу и FAQ (http://www.postgresql.org/docs/faqs.FAQ_windows.html#3.7)! Там написано, что в такой ситуации надо деинсталлировать старую версию, а потом установить новую.