Как заставить Сервер 1С (что работает на Windows), увидеть в сети сервер PostgreSQL на Linux UBUNTU?
Конечно, данная тема также подымается и на курсе: Администратор 1С!
Собственно решить такие проблемы как:
- “Ошибка создания информационной базы”
- “Ошибка операции администрирования”
- “Сервер баз данных не обнаружен”
- “Could not connect to server: Connection refused (Ox..00000/0000…)
- Is the server running on host 192.168….x… and accepting TCP/IP connections on port 5432?”
При установке на один физический сервер, “Cервера 1С” (кластер серверов) + СУБД PostgreSQL проблем обычно не возникает. И “Сервер 1С” прекрасно видит PostgreSQL, новые информационные базы создаются, и все работает по умолчанию, конечно если поставили птичку во время установки СУБД на Windows – “Разрешать подключения с любых IP адресов”.
Но совсем другая история, когда PostgreSQL у нас работает на Linux!
Ведь в процессе установки PostgreSQL на Linux подобных “птичек” нет )
Как решить проблему?
На самом деле все довольно просто!
Проверим в начале c какого IP принимаются подключения, и какой порт слушает сервис PostgreSQL.
Тут нам поможет команда:
1 |
sudo netstat -pant | grep postgres |
На картинке ниже, мы четко видим, что наш PostgreSQL слушает только localhost – 127.0.0.1 и порт по умолчанию 5432.
Выражаясь простым языком, “Сервер 1С” может работать в паре с СУБД, только на этом севере (хосте), при текущих настройках (По умолчанию, после установки “Постгреса” на этот сервер).
И так, теперь разобравшись, что проблема действительно есть в настройках PostgreSQL, можно приступить к ее решению!
Сперва нам нужно найти конфигурационный файл postgresql.conf
Местоположение этого файла зависит от версии СУБД PostgreSQL (На примере использую сборку от компании Postgres Professional – PostgreSQL 10.5, сборку установил на UBUNTU server 18.04 LTS).
Найти файл очень просто, используем команду:
1 |
ps aux | grep postgres | grep -- -D |
Нас интересует все что мы видим после -D /var/lib/pgpro/1c-10/data/
Здесь в каталоге /data/ и лежит наш файл postgresql.conf
Идем в этот каталог, откроем для редактирования postgresql.conf, и внесем нужные правки.
Для передвижения по каталогам и редактированию файлов на UBUNTU server 18.04, я использую MC (Midnight Commander).
Как его установить, писал здесь >>
(Выбрав файл postgresql.conf) далее давим клавишу F4:
Ищем строку #listen_addresses = ‘localhost’.
Раскомментируем строку (убрав #).
И приведем строку к виду: listen_addresses = ‘*’
Давим F2 + Enter и сохраняем файл.
Далее выполним перезапуск сервиса postgresql:
Стоп:
service postgrespro-1c-10 stopИ старт:
service postgrespro-1c-10 start(Команда перезапуска у Вас будет отличатся, если версия PostgreSQL другая или другой сборки).
Затем стоит проверить работает ли PostgreSQL:
service postgrespro-1c-10 statusИ если видим (как на картинке ниже) зеленым цветом active (running) значит PostgreSQL работает!
Смотрим, что теперь “слушает” PostgreSQL:
1 |
sudo netstat -pant | grep postgres |
Отлично!
После перезапуска сервиса, PostgreSQL принимает подключения действительно с любых IP адресов на стандартный порт 5432!
Но! не спешите сейчас бежать на Сервер 1С, создавать новую информационную базу, или выполнять подключение.
Сервер 1С встретит Вас новой ошибкой! )
“ВАЖНО: в pg_hba.conf нет записи для компьютера “192.168.128.13”, пользователя “postgres”, базы “template1″, SSl выкл.”
Сервер 1С требует от нас создать еще одну запись, уже в другом файле pg_hba.conf
“Надо, так надо )”
Открываем для редактирования файл pg_hba.conf, он к слову находится в том же каталоге, что и файл postgresql.conf
Ищем строку: host all all 127.0.0.1/32 md5
И приводим к виду: host all all 192.168.128.13/24 md5
Где 192.168.128.13 ip адрес нашего Сервера 1С. (Тот сервер, где работает Сервер 1С).
Кстати! можно поступить и по-другому.
Просто добавить в строке ниже еще одну запись (Ту которую от нас и требует Сервер 1С):
Вот и все!
Сохраним файл и выполним перезапуск PostgreSQL.
Теперь новая информационная база 1С, будет создана успешно!
Сервер 1С работает на Windows, а PostgreSQL на Linux!
Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>