Postgresql 1c ошибка создания временной директории
также я установил значение по умолчанию для в реестре в путь к файлу vbscript.dll, но он также не решил мой вопрос.
следующая ссылка решить мою проблему
я получил тот же результат установки " postgresql-9.2.3-1-windows-x64.exe " в Windows 7 Enterprise и проблема будет решена, когда я изменить путь установки.
попробуйте установить в " c:\postgresql " вместо " c:\program files\Postgresql "
Я вытащил ссылку шина из кэша google:
Кластер Баз Данных PostgreSQL Ошибка Инициализации Решения
Я буду держать это коротким и сладким. Для тех из вас, кто пытался установить PostgreSQL (мой был 8.3.7-1) в Windows Vista и получил ошибку инициализации кластера базы данных ошибок в конце установки, прочитайте это.
проблема в том, что Vista имеет некоторые функции безопасности, связанные с настройкой разрешений на папку Program Files. В принципе, даже если вы администратор, вы не можете изменить разрешения на некоторые папки, такие как Саму папку Program Files и Windows. В результате initdb не удается создать некоторые папки и кластер базы данных. Это означает, что вам нужно установить PostgreSQL в другую папку, которая не находится внутри программных файлов.
кстати, если вы забыли пароль учетной записи Postgres при установке в первый раз, просто откройте Командную строку в Vista (если вы не знаете, как, Google для него). Затем введите команду "net user". Вы увидите список пользователей компьютер. Найдите аккаунт Postgre. Обычно это "Постгрес". Затем вам нужно изменить свой пароль, введя "net user postgres new_password", где new_password. ну, новый пароль для учетной записи. Вам понадобится эта учетная запись postgres во время установки. Однако для этого вам понадобятся права администратора.
во-первых, удалите все неудачные установки. Используйте Панель управления или установщик PostgreSQL в папке установки.
во время установки, вы будет предложено выбрать, где вы хотите установить программу. Просто выберите место в другом месте. Как . C:\PostgreSQL-или что-то в этом роде. Это может быть даже на вашем рабочем столе. Но не внутри программных файлов. Не внутри папки Windows. Однако, это не так просто. Потерпеть меня.
теперь в поле "группа или имена пользователей" выберите учетную запись Postgres. В окне ниже, с большим количеством флажков, назначьте ему разрешение "полный контроль" в столбце разрешить. Обратите внимание, если вы не хотите разрешать полный контроль, просто дайте ему чтение/запись. Но я просто пошел вперед и дал ему полный контроль. (Я устал и был раздражен. Не удалось установить "самую передовую базу данных с открытым исходным кодом в мире"!). Нажмите на Ok и немного подождите разрешения на быть применены.
затем просто выполните повторную установку. Не удаляйте ничего. Просто запустите настройку еще раз. Он скажет, что папка установки PostgreSQL уже существует и другие вещи. Просто нажмите кнопку Далее, пока не закончится установка. Если вы видите ошибки "файл не может быть скопирован", нажмите кнопку" игнорировать", когда это необходимо.
для меня проблема заключалась в том, что переменная PATH не имела C:\Windows\system32 и поэтому он не нашел команду ICACLS для изменения разрешений папки. Поэтому решение состоит в том, чтобы добавить C:\Windows\system32 системной переменной PATH (если она еще не содержит ее):
- Панель Управления - > Система - > Дополнительные Настройки Системы - > Дополнительно - > Переменные Среды
- В разделе " системная переменная "найдите и выберите"путь"
- Нажмите "Редактировать. "
- Теперь, если значение не содержит путь к строке добавления system32 ";C:\Windows\system32 " (или где ваш путь windows)
ваша установка Windows немного borked, и вам нужно будет повторно зарегистрировать движок VBScript, чтобы запустить установщик.
У меня была такая же проблема при попытке установить PostgreSQL 9.3.5-3 на машине Windows 7 x64 (не присоединенной к домену) в папке, созданной в корне, с полным доступом ко всем. Проблема была решена, не используя ä в моем пароле, поэтому избегайте использования неанглийских символов в пароле.
для меня проблема заключалась в запуске установщика под на учетная запись "Администратор". Это не работает. Запустите его под an учетная запись администратора, избегая встроенной учетной записи "Администратор".
Я действительно не знаю, как это обычно называется, но это тот, который уже существует на новой установке; тот, который не может быть изменен на стандартного пользователя; тот, чей профиль хранится в C:\Users\Administrator . Оказывается, это была плохая идея использовать эту учетную запись; узнал это на горьком опыте.
(64-разрядная версия Windows Server 2008 R2)
* команда запуска: net user postgres / delete
• нажмите: Панель управления - > Учетные записи пользователей - > настроить дополнительные свойства профиля пользователя - > удалить все экземпляры "неизвестный пользователь", которые, похоже, остались от установки PostgreSQL.
• Run: compmgmt.msc - > нажмите Локальные пользователи и группы - > пользователи - > новый пользователь. - > имя пользователя: postgres, пароль: postgrespass - > создать
• Run: команду compmgmt.msc - > нажмите Локальные пользователи и группы - > пользователи - > postgres - >член - > добавить. - > администраторы - > OK
• скопируйте установщик PostgreSQL postgresql-8.4.9-1-окна.exe для C:\
• Run:runas /user: postgres cmd.exe - > cd \ - > postgresql-8.4.9-1-окна.exe - > успешно установлен без ошибок. Проверена папка данных и подтвержденные файлы, созданные успешно.
• Run: compmgmt.msc - > Локальные пользователи и группы - > пользователи - > postgres - > член - >Администраторы - > Удалить
• Run: compmgmt.msc - > Локальные пользователи и группы - > пользователи - > postgres - > член - > добавить. - > опытные пользователи - > OK
Эй, ребята, ответ очень прост, просто установите postgresql в другую папку вне программных файлов. он запрашивает неустранимую ошибку и переходит к установке.
Я решил ту же проблему в Windows Server 2003 и postgres 9.2.9-3, предварительно создав каталог для установки и предоставив полный доступ к нему группе "пользователи".
ответ очень прост, переместите скачанный .exe-файл в другую папку . например: c:\postgres и попробуйте установить его.
ваша проблема связана с некоторыми проблемами привилегий администратора
кажется, что есть много причин, вызывающих сбой установки.
в моем случае я использую Windows 10 home edition, которая не имеет предварительного контроля группы пользователей, поэтому многие решения выше не работают для меня. И я предполагаю, что именно поэтому установка терпит неудачу.
Я просто использую установщик BigSQL вместо установщика EnterpriceDB,
выберите второй установщик в центр загрузки posgresql
или посетите параметру bigsql напрямую.
Я знаю, что это не решение, но установка 32 бит Postgres, работал для меня
У меня была та же проблема при попытке установить PostgreSQL 9.6.2 на 32-битной машине Windows 7, но я получил решение, сначала просто удалите установленные postgres, затем удалите папку postgres с диска "c", удалите запись из temp-файла, который находится в "C:\Users\AppData\Local\Temp".Затем снова установлен postgres 9.6.2, который успешно установлен.
была такая же проблема, пытаясь установить на моем компьютере компании (ПК под управлением Windows 7). Если вы не являетесь администратором на вашем компьютере, вам необходимо установить его в вашей личной папке "пользователь" (не в папке "Program Files" в корне).
Если вы все еще не можете получить доступ к Postgres:
Как только вы установили его в папку "пользователь", используйте программу " Run "и введите" services.msc " и нажмите enter. В окне, которое выскакивает, спустись к себе. установка postgres, щелкните правой кнопкой мыши и перейдите в раздел "Свойства". На вкладке "вход" выберите "Учетная запись локальной системы", затем вернитесь на вкладку" Общие "и нажмите"Пуск". После этого он должен загрузиться.
после этого я смог запустить "pgAdmin" и получить доступ к базе данных (после ввода пароля, который я использовал во время установки).
у меня была та же проблема сегодня при установке postgres 9.6.19 в windows 10. Решение: ни путь установки, ни переменная пути windows не может содержать пробел! Ближе к концу файла журнала установки (найдено в wondows %temp% dir с именем bitrock_installer_16156.журнала) я нашел:
скрипт stderr: "\UnxUtils\usr\local\wbin\";"C:\Program Канн syntaktisch с Дизер Стелле нихт verarbeitet Верден.
установка каталог я, как мои окна переменную %PATH содержала
решение: откройте командную строку от имени администратора и введите:
Винду поели вирусы.
Бэкап базы почему-то не делался.
Но папка с базой на диске осталась.
Переустановили WindowsXP и сервер PostgreSQL 8.4.1
Как теперь подключить базу? Ведь вся база осталась целая.
Обычно можно сделать так. 1.
Обычно можно сделать так.
1. Сохранить весь каталог с новым PostgreSQL (на всякий случай) и со старым тоже
2. Остановить PostgreSQL
3. Заменить каталог с базой со старой копии PostgreSQL
4. Запустить PostgreSQL
Очень важное НО. Версии старого PostgreSQL и нового PostgreSQL должны полностью совпадать.
Ура. Заработало.
Но после того как Админ сказал что "Обычно можно сделать так. " решил еще попробовать.
Оказывается что базу надо было переносить под тем пользователем, под которым сервер Постгреса запускался (postgres). Т.е. чтобы именно этот пользователь был владельцем каталога и файлов.
Теперь все работает! Ура!
Спасибо за поддержку
Очень рекомендую, сразу, пока
Очень рекомендую, сразу, пока не забыли. настроить бакапы! Были бы бакапы, вообще проблем бы не было никаких!
Похожая ситуация: Внезапно
Похожая ситуация:
Внезапно вышел из строя контроллер к которому были подключены диски с размещённой на них Windows Server и папка с бэкапами. Саму папку с базой, так как она находилась на другом контроллере, удалось скопировать. Так как сервер на гарантии, то контроллер заменят, но не скоро.
Хотелось бы воспользоваться описанным Вами способом, НО никто не знает какая точно версия PostgreSQL была установлена.
Как то можно это выяснить по папке с базой?
В папке с базой есть файл
В папке с базой есть файл PG_VERSION
Спасибо, что откликнулись.В
Спасибо, что откликнулись.
В файле PG_VERSION записано 8.3
8.3 это равнозначно 8.3.11-1 или нет?
Бинарный формат хранения
Бинарный формат хранения данных не меняется в минорных релизах, т.е. любая версия 8.3.x имеет один и тот же формат хранения данных. Конечно, на всякий случай копию каталога с базой я бы советовал сделать, но если верить документации, обновление на любую версию в пределах одного релиза не требует модификации данных, т.е. можете смело ставить 8.3.11 и должно работать.
Произвел операцию
Версия базы: 8.3.х в обоих случаях (и новая и старая).
Привет, сделал как вы написали, под пользователем postgres, сервис запустился нормально, но базы не видно. видно только одну стандартную базу.
1. Здесь "Заменить каталог с базой со старой копии PostgreSQL" нужно было копировать папку data или data/base ?
2. нужно было старую удалить и записать новую или допустим копировать с перезаписью? Или может без перезаписи как-раз?
owner у файлов правильный.
Есть какие-либо идеи?
1. копировать папку data 2.
1. копировать папку data
2. перед копированием тут папку data что была удалить
Если не работает, то вы уверены, что пути совпадают в обоих случаях? Это может оказаться важным.
Нет, пути как-раз не
Нет, пути как-раз не совпадают, был диск H, а стал F. Это критично?
Спасибо за быстрый ответ:)
Критично, пути могут остаться
Критично, пути могут остаться зашитыми в базу как местоположение для TABLESPACE
Здравствуйте! У меня такая проблема, как описано в теме. А теперь по порядку. ОС - XP SP3. Администратором удачно собираю постгресс 8.2.12 при помощи mingw. Далее, в папке, куда скинулись все собранные модули, запускаю программку для регистрации сервиса. Регистрирую на созданного заранее пользователя (именно пользователя, а не администратора) postgres, пароль указываю этого пользователя. Всё проходит нормально. Сервис создается. Потом перехожу в сеанс пользователя postgres, инициализирую БД программкой initdb (успешно), пытаюсь запустить сервис, выдаёт мне ошибку 5, доступ запрещен. Вот на этом я и запнулся. Кроме того, сервер нормально запускается в обычном режиме, т.е. через postgres.exe, а в режиме сервиса - отказывается. Что я делаю не так или, вероятно, просто не делаю?
Заранее благодарен возможным ответам. Это очень важно для меня.
Логи Виндоуз
Логи Виндоуз читали? Что там написано? Судя по ошибке кому-то не хватает прав! Вполне возможно вот этому пользователю postgres, на запуск сервиса.
Да, в логах пишется про то же, что пользователю запрещен доступ и указывается, что ошибка 5. Больше ничего там нет. Каким образом можно дать пользователю postgres права на запуск данного сервиса?
Вопрос скорее к
Вопрос скорее к админам Виндоуз, чем относящийся к тематике PostgreSQL.
Попробуйте например пользователя postgres включить в группу админов.
Решение проблемы
При регистрации сервиса через командную строку, просто не указываем имя пользователя (postgres) и его пароль. Сервис регистрируется, работает и запускается отлично от имени системы. Спасибо за ответы! Тему можно закрыть.
В свойствах
Проблема 2: сервис не запускается из-за postgresql.conf
вот, где у меня
вот, где у меня лежит postgresql.conf :
C:\Program Files\PostgreSQL\8.3\data
вот, как у меня прописан сервис:
runservice -w -N "pgsql-8.3" -D "C:\Program Files\PostgreSQL\8.3\data\"
вот такой командой:
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\""
Вы пробовали поставить PostgreSQL 8.3.3 (самая свежая сборка с патчами от 1С на сегодня) на Windows Vista (Windows 7), получилось? У меня только после некоторых мучений. В статье я описал как обошел проблему с установкой. В свете уже длительного времени отсутствия сборки PostgreSQL от 1С с решением проблемы, уверен моя заметка будет полезна.
Я долгое время не хотел переходить со знакомой и привычной Хрюши, но пришлось. И вот столкнулся, что на Vista и W7 никак не хочет штатными методами вставать PostgreSQL 8.3.3, хотя на WinXP все прекрасно инсталлируется простым запуском setup и выбором необходимых параметров.
Убив немного времени и трафика, а также почитав документацию, я нашел 1 способ как все таки поставить PostgreSQL. Я не берусь утверждать, что этот способ самый лучший, более чем уверен что есть и другие способы и к сожалению я так и не смог установить PostgreSQL без дополнительных манипуляций.
Коротко о сути способа:
Поставить PostgreSQL без автоматической инициализации кластера
Вручную инициализировать кластер
Установка без автоматической инициализации кластера отличается от типовой установке только тем, что в окне с параметрами инициализации кластера, необходимо снять галочку «инициализировать кластер базы данных».
Для инициализации кластера в ручную, необходимо выполнить команду (командную строку лучше запускать из меню «Пуск» - «Все программы» - «Postgre SQL », иначе придется вводить полный путь до initdb ):
initdb.exe -D с :\pg_base --locale=Russian_Russia --encoding=UTF8 -U postgres -W
c:\ pg _ base – путь где будут лежать файлы кластера (БД, конф. файлы и еще кучка всякого)
-- locale = Russian _ Russia -- encoding = UTF 8 –задаем необходимую локаль и кодировку
-U postgres – имя супер пользователя БД
- W – вас попросят ввести пароль для супер пользователя
После окончания инициализации можно запускать PostgreSQL в ручную, но мне больше нравиться, когда он стартует автоматом, для этого необходимо выполнить команду:
sc create pgsql-8.3_cluster displayname= "PostrgeSQL_Cluster" obj= ".\postgres" password= "1234567" start= auto binPath EN-US">pgsql-8.3_cluster -D C:\pg_base\"
По человечески эта команда звучит , как « создать сервис с именем pgsql-8.3_cluster отображаемым именем PostrgeSQL_Cluster запускаемым от имени пользователя postgres с паролем "1234567", который будет автоматически запускаться и строка запуска у него EN-US">pgsql-8.3_cluster -D C:\pg_base\"»
Затем в командной строке:
net start pgsql-8.3_cluster
Тут можно получить слона:
Уверен, что есть более правильные способы обхода проблемы, я надеюсь, что в обсуждении статьи кто-нибудь их расскажет или даст ссылку.
Преимущества использования свободно распространяемого программного обеспечения очевидны. К сожалению, очевидны и недостатки – нет официальной поддержки, зачастую документация противоречива, неполна и разбросана по разным источникам. Эта статья поможет разобраться с процессом установки PosgreSQL для “1С:Предприятие 8”, избежав подводные камни, которые не описаны в официальной документации.
Необходимые компоненты для установки
СУБД PostgreSQL распространяется бесплатно и входит в комплект поставки сервера приложений “1С”. Сервер приложений “1С:Предприятие 8” поставляется в двух вариантах: 32-разрядный и 64-разрядный. Postgre может работать с обоими.
Итак, имеем на руках дистрибутивы:
Казалось бы, чего проще – запусти и установится. Легко! Но установка в стандартном режиме даст одно небольшое ограничение: кластер у нас будут лежать в папке “Program Files”. Не всем это понравится. Рассмотрим два варианта установки, простой и расширенный.
Статья разбита на 5 разделов:
1) Установка сервера 1C.
2) Установка PostgreSQL в стандартном виде, достаточном для запуска 1С без дополнительных настроек.
3) Установка PostgreSQL с выбором папки хранения кластера.
4) Создание новой информационной базы 1С.
5) Указание папки хранения файлов базы данных на сервере СУБД.
Перед установкой обязательно прочитайте всю статью целиком!
Установка сервера приложений 1С
Запускаем setup.exe из папки с дистрибутивом сервера 1С.
Далее…далее… До выбора способа запуска сервера приложений:
В том случае, если вы установите сервер приложений не как сервис, нужно будет вручную его запускать каждый раз. Требуется такой вариант редко. Устанавливаем как службу (сервис), и решаем, под каким пользователем он будет запускаться. Из соображений безопасности лучше создать отдельного пользователя USR1CV82, а не разрешать сервису работать под полными правами.
После установки сервера приложений система предложит установить драйвер ключа защиты HASP. Соглашаемся:
Готово, сервер приложений “1С:Предприятие 8” мы установили успешно.
Установка PostgreSQL в стандартном виде, достаточном для запуска 1С без дополнительных настроек
Выбираем русский язык и двигаемся дальше.
Пока все просто, “далее”.
Опции установки можно не менять, 1С работать будет. Далее.
Postgre, как и сервер 1С, может сам создать пользователя, под которым будете запускаться служба. Обращаю ваше внимание на то, что если указать учетную запись с правами администратора, то служба корректно работать не будет. Обязательно создавайте нового пользователя.
Следующее окно установки.
Инициализируем кластер. Если у нас сервер баз данных и сервер приложений 1С находятся на разных компьютерах, тогда устанавливаем галочку «Поодерживать подсоединения с любых IP», иначе не трогаем. Обязательно указываем кодировку UTF8. Создаем суперпользователя СУБД. Далее…
Уже почти все. Далее.
Для начальной работы нам ничего дополнительного не нужно, снимаем галочку, завершаем установку.
Результат наших усилий – готовый к работе PostgreSQL. Если нас устраивает, что базы будут лежать в Program FilesPostgreSQL9.1.2-1.1Cdata – заканчиваем на этом, раскрываем базы и наслаждаемся процессом. Однако, чаще все-таки базы данных “лежат” на специально предназначенных для этого дисковых массивах, а не на системном диске. Для того, чтобы настроить расположение данных, перед установкой прочитайте следующий раздел.
Установка Postgre с выбором места хранения кластера
Приступаем к установки Postgre и выполняем все шаги до тех пор, пока нам не предложат инициализировать кластер:
Снимаем галочку “Инициализировать кластер базы данных” и нажимаем “Далее”.
Снимаем галочку “По выходу запустить Stack Builder” и завершаем установку.
Дальше начинаем колдовать в командной строке:
1. Необходимо выдать полные права на папку в которую мы установили PostgreSQL, обычно это C:Program FilesPostgreSQL
2. Из под админских прав запускаем cmd. Если это делаете в win7, то запускаем от Администратора.
3. Создаем папку где будет храниться кластер. Например d:postgredata.
md d:postgredata
4. Проводим инициализацию кластера вручную с указанием пути где он будет находиться.
“C:Program FilesPostgreSQL9.1.2-1.1Cbininitdb.exe” -D d:postgredata –locale=Russian_Russia –encoding=UTF8 -U postgres
5. Удаляем службу PostgreSQL, которая была установлена в ходе установки.
sc delete pgsql-9.1.2-1.1C-x64
Где pgsql-9.1.2-1.1C-x64 – Это название службы. Если не знаете название точно, можно посмотреть свойствах службы “PostgreSQL Database Server…” (Пуск – Панель управления – Администрирование – Службы )
6. Создаем новый сервис с указанием нашего кластера
“C:Program FilesPostgreSQL9.1.2-1.1Cbinpg_ctl” register -N pgsql -U postgresql -P пароль -D d:/postgredata
7. Теперь заходим в службы. Пуск – Панель управления – Администрирование – Службы и стартуем нашу службу.
Создание новой базы данных 1С на сервере с PostgreSQL
Есть несколько вариантов создания базы данных. Можно попробовать создавать базу через pgAdmin3, консоль администрирования серверов 1С. Но тут вы столкнетесь с массой непонятных вопросов и кучей ошибок, ответы на которые будете долго искать. Оставьте это для специалистов. Наша задача получить работоспособную базу с минимальными усилиями. Опишем самый простой путь добиться этого.
Запускаем клиент 1С.
Создаем новую информационную базу. Далее…
Выбираем шаблон новой базы. Далее…
Придумываем название базы, указываем “На сервере 1С:Предприятия”, далее.
Кластер серверов 1С:Предприятия – localhost, если мы создаем базу на том же компьютере, где установлен сервер 1С, или имя сервера приложений 1С, если на другом.
Имя информационной базы в кластере – в дальнейшем это название будет указываться при подключении с других компьютеров.
Тип СУБД – Выбираем PostgreSQL.
Сервер баз данных – указываем название сервера PostgreSQL. Если создаем базу на сервере, так же указываем localhost.
Имя базы данных – с таким название будет создана база в PostgreSQL.
Пользователь, пароль – имя пользователя, которого мы указывали как суперпользователя при установке PostgreSQL. Обязательно поднимаем галочку “Создать базу данных в случае ее отсутствия”.
Возникает вопрос – а где база будет храниться физически? В папке Base указанного кластера. А если мы не хотим, чтоб она лежала там, где лежат все базы? Тут пока ничего поделать нельзя, просто создаем базу и двигаемся дальше. Далее…
Готово. Правильно установленная система дальше все сделает сама.
Указание папки хранения базы данных
Итак, мы создали базу. В большинстве случаев на этом установка заканчивается. Однако, если баз много, и есть несколько дисковых массивов для разных групп баз, нужно указать, где физически должны располагаться базы. Чтобы сделать это, запускаем pgAdmin3 из Пуск – Программы – PostgreSQL. Подключаемся к нашему серверу.
При первом подключении Postgre попросит пароль для пользователя postgres (которого мы создавали при установке).
Поставим галочку “сохранить пароль”, чтобы больше не спрашивал.
Создаем новый TableSpace, это будет та папка, в которой будут храниться наши базы.
Указали место хранения файлов базы. Ок.
Теперь открываем свойства уже созданной ранее базы данных, размещение которой мы хотим изменить.
Меняем свойство Tablespace. После нажатия “ОК” файлы базы данных будут автоматически перемещены. Готово!
Читайте также: