20 мая, 2025

nanoCAD. Не удается открыть базу данных.

Иногда после установки nanoCAD, пользователи видят сообщение:

Не удается открыть базу данных.




К сожалению, так иногда бывает, попробуем разобраться и понять как лечить.

Последние версии nanoCAD (c версии 23 точно, может и раньше) по умолчанию работают с базой postgreSQL, хотя умеют и с SQL и localSQL от Microsoft.

Начнем с postgreSQL.

Если появилось сообщение: "Не удается открыть базу данных"

Вариантов несколько...

  1. postgreSQL не установился или не запустился
  2. База не развернулась на postgreSQL
  3. Неправильная строка подключения к postgreSQL (кроме имени базы, важен еще и порт на который мы подключаемся)
  4. запрет на подключение к базе извне в pg_hba.conf
    в строчке: host    all             all             0.0.0.0/0               reject

Собственно сейчас бегло рассмотрим симптомы и возможности лечения

Открываем диспетчер задач, переходим на вкладку службы, сортируем по имени..


если видим такую строку (для nanoCAD старше 25 postgre 12) и состояние службы "Выполняется". postgreSQL у нас есть и он работает. Идем проверять дальше.

Если службы нет или она не работает, то очевидно, что postgreSQL не установился или встал неправильно.

Удаляем его (если он есть, но не работает) в установке удалении программ и ставим отсюда postgreSQL. Либо скачиваем с оф сайта postgreSQL (postgreSQL 17.5 прекрасно работает на nanoCAD 23.1-25.0)
Потребуются права администратора.

Можно не скачивать по ссылке, postgreSQL есть в составе дистрибутива nanoCAD, достаточно открыть инсталлятор WinRar'ом

Вот он в папочке PreReq


настройки установки можно посмотреть там же в файле pg_setup.ini

SuperUser=postgres

Password=password

Servicepassword=password

Port=5433

Для postgre 12, Port=5432

Номера портов для разных версий postgreSQL отличаются, что бы при установленных нескольких версиях postgreSQL была возможность подключиться к любому серверу.

Если установка прошла Ок, то после перезагрузки убедившись, что служба postgreSQL появилась и запущена, переходим к следующему шагу.

Нам надо убедиться, что базы данных развернуты, что они есть..
Тут есть два пути, можно подключиться из ком строки и посмотреть, какие базы развернуты на сервере (об этом пару строк в конце статьи), но можно скачать и установить pgadmin и дальше разбираться с проблемой комфортно в графическом интерфейсе. 

Для установки pgadmin права администратора не нужны (в случае если установка будет выполнена для текущего пользователя)


При подключении pgadmin запросит пароль, (пароль по умолчанию password).

При успешном подключении увидим такое окно

Красным выделены базы nanoCAD. Если баз данных начинающихся с nc*  окошке нет, то надо развернуть нужные базы. Подробную инструкцию по процессу установки баз можно прочитать тут SPDS.ru. Установка баз доступна из под обычного пользователя.

После того как базы установлены, проверяем настройки подключения,

Сервис->Оформление
Нажимаем три точки

должно быть так:


localhost - сетевой адрес компьютера с развернутым postgreSQL (может быть сетевое имя или IP,
в этом случае localhost сетевой адрес нашей машины, можно прописать 127.0.0.1)

5433 - номер порта на который настроен postgreSQL , для 12-й версии postgre порт 5432 (в этом случае поле сервер можно не заполнять совсем, 5432 порт по умолчанию)

nspds250 - имя базы данных,  которое мы подсмотрели в pgadmin.

После применения настроек база появится в базе элементов nanoCAD


Возможна ситуация, когда подключиться к серверу postgreSQL не удается ни из pgadmin, ни даже из командной строки. Как правило nanoCAD пишет, что сервер отверг подключение или, что то в этом роде.

Причина проста, начиная с nanoCAD 23, nanoCAD dev по видимому решила повысить безопасность и при установке nanoCAD  инсталятор дописывает в файл:

c:\Program Files\PostgreSQL\16\data\pg_hba.conf

c:\Program Files\PostgreSQL\12\data\pg_hba.conf

следующие строчки:

# No users are able to access database from outside network connection.
# The record was added 02.05.2023 by setup.exe of
# product 'Платформа nanoCAD x64 23.0'.
host    all             all             0.0.0.0/0               reject

т.е. запрет подключения к PostgreSQL с других машин по сети.
Но иногда на корпоративных ПК, возможно из за сетевых настроек или локальных политик, эта строка запрещает и локальное подключение.

В принципе достаточно открыть файл pg_hba.conf в блокноте и закомментировать эту строку

вот так:

# host    all             all             0.0.0.0/0               reject

сохранить файл и перезапустить PostgreSQL, а лучше перезагрузить машину.

Инсталятор nanoCAD  при перезаписи, pg_hba.conf создает резервную копию pg_hba.conf.bak, поэтому достаточно переименовать pg_hba.conf  в pg_hba.conf _ , а pg_hba.conf.bak в pg_hba.conf и перезапустить компьютер, подключение к базам должно восстановиться.

Все просто, но для редактирования/переименования файла нужны права администратора. Простой пользователь не сможет даже зайти в каталог c:\Program Files\PostgreSQL\16\data\ 

PS посмотреть имена баз, да и вообще проверить подключение postgre можно и без pgadmin, из командной строки.

  1. Открываем командную строку:
  2. cd C:\Program Files\PostgreSQL\16\bin переходим в каталог postgre
  3. @chcp 1251 ставим кодовую страницу локали (что бы не было кракозябр)
  4. psql -U postgres
  5. вводим пароль password
  6. \l

и видим такую красоту


PPS переключать базы в можно не только через настройки, но и из командной строки nanoCAD, подробнее можно почитать тут.

Благодарности: 

Хотел писать про подключение к базе localSQL, а оно уже написано читать тут

Компоненты localSQL в личном кабинете уже недоступны забрать их можно тут

Комментариев нет :

Отправить комментарий