Форум: "Базы";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];
ВнизFirebird, проблема с коннектом Найти похожие ветки
← →
Handbrake (2008-11-27 16:13) [0]Уважаемые Мастера!
Firebird 2.0, выполняется сервисом
firebird.conf:...
# ----------------------------
# Database Paths/Directories
#
DatabaseAccess = none
...
aliases.conf:
#
# List of known database aliases
# ------------------------------
#
# Examples:
#
#
dummy = C:\FBDB0\my02.fdb
ConvDB = C:\FBDB0\convention.fdb
В приложении использую IBDatabase.
На Сервере подключение к БД через имя алиаса проходит, на Клиенте - нет ( unavailable database. ).
Чего я делаю не так, Чего не докрутил ?
← →
qqq (2008-11-27 16:20) [1]на клиенте не по алиасу получается?
← →
Handbrake (2008-11-27 16:33) [2]
> qqq (27.11.08 16:20) [1]
> на клиенте не по алиасу получается?
Проверил, сейчас не получается, но недавно, когда разбирался с клиентским коннектом (я новичок в Firebird) кажется проходило. При этом в firebird.conf было:
...
# ----------------------------
# Database Paths/Directories
#
DatabaseAccess = full
...
← →
Handbrake (2008-11-28 10:21) [3]Чего то я сбит с толку:(
на сервере в firebird.conf:
...
DatabaseAccess=None
...
на самом сервере не могу соединиться ни по абсолютному имени, ни по алиасу (Access to database ... is denied by server administrator).
Ладно, теперь делаем исправление
на сервере в firebird.conf:
...
# DatabaseAccess=None
...
и перезапускаем сервис FirebirdServer. Теперь и по абсолютному имени файла БД и по алиасу соединение на сервере проходит успешно. На клиенте не коннектится ни так ни эдак.
Я специально выделил знак #. В начале firebird.conf сказано, что все что стоит после # является комментарием...
Как такое понимать?
← →
Виталий Панасенко (2008-11-28 11:28) [4]А брандмауэр выключен? или хотя бы порт 3050 открыт на клиенте?
← →
Handbrake (2008-11-28 12:29) [5]Коллеги! Извините, водил Вас "за нос". Прошу не очень больно бить ногами:
> А брандмауэр выключен? или хотя бы порт 3050 открыт на клиенте?
Теперь работает и при включенном Брандмауэре, порт правда открыт.
У меня в тест-программе строки:
IBDatabase1.Connected := false;
IBDatabase1.DatabaseName := Edit1.Text;
IBDatabase1.Connected := true;
В Edit1 ввел "Dummy"
когда на сервере запускаешь эту программку все нормально.
Но на клиенте-то нужно указывать еще и путь по локальной сети до машины, где расположена БД, т.е, например "MyCompAsFBServer.OurCommunity.local:Dummy". Блин, даже мысли не пришло такой! Короче, Я Не Прав:)
Теперь возникла мысль, а нельзя ли в aliases.conf на клиенте указать алиас так:
dummy = MyCompAsFBServer.OurCommunity.local:Dummy:C:\FBDB0\my02.fdb
чтобы при коннекте указывать только Dummy ?
Не получилось, хотя я не очень понял почему. Может поясните?
Спасибо Всем за участие.
← →
Виталий Панасенко (2008-11-28 12:33) [6]конечно, нельзя
← →
PEAKTOP © (2008-11-28 12:35) [7]Во-первых, укажите вариант сервера (SuperServer, ClassicServer, SuperClassicServer).
Во-вторых, неплохо бы указать версию билда (например, 2.0.5.13200)
------------------------
Если у тебя приложение не коннектиться к серверу по сети ни так, ни эдак, то проблема не в сервере, а в сети.
1) Брандмауэр виндов. Либо настроить нормально, либо отключить совсем.
2) Никаких динамических IP в локальной сети. Прописать в настройках IP статично.
3) Строка подключения в виде "192.168.0.1:MyDataBaseAlias"
4) Надеюсь, не надо напоминать, что имена алиасов из aliases.conf РеГиСтРоЗаВиСиМыЕ.
После этого попытайся воспроизвести снова.
-------------------
Мне мой хрустальный шар подсказывает, что еще дело здесь может быть в манифесте. Найди файлы в папке ($firebird)/bin
Microsoft.VC80.CRT.manifest
msvcp80.dll
msvcr80.dll
и скопируй их в папки ($firebird)/intl и ($firebird)/udf
← →
Handbrake (2008-11-28 12:46) [8]To PEAKTOP © (28.11.08 12:35) [7]
Обошлось, как видите, без "хрустального шара" :). Ваше № 3
To Виталий Панасенко (28.11.08 12:33) [6]
> конечно, нельзя
даже Ваше убедительное "конечно" не проясняет мне ситуацию...
← →
Правильный$Вася (2008-11-28 14:05) [9]
> даже Ваше убедительное "конечно" не проясняет мне ситуацию.
нельзя потому, что клиент не знает, где именно он должен разжиться алиасом
вот когда указываешь имя сервера, он уже там и проверяет наличие алиаса
а так серверов в сети - вон, полный интернет
все перебирать будешь?
← →
Handbrake (2008-11-28 14:28) [10]To Правильный$Вася (28.11.08 14:05) [9]
Понятно, просто я мыслил по аналогии c Oracle(не работал с этой СУБД как программист, сопровождал маленько). Там вроде такой файлик есть tnsnames.ora,
В первом приближении, что-то типа:
NSNORA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MyCompAsFBServer.OurCommunity.local)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora10mr)
)
)
Его просто берешь с сервера и ставишь на клиент.
Т.е. при коннекте указываю User, Password, NSNORA. Достаточно удобно. Я думал в Firebird похоже.
← →
Handbrake (2008-11-28 14:33) [11]Кстати, ошибочка в [5]
хотел написать не
dummy = MyCompAsFBServer.OurCommunity.local:Dummy:C:\FBDB0\my02.fdb,
а
dummy = MyCompAsFBServer.OurCommunity.local:C:\FBDB0\my02.fdb
← →
Виталий Панасенко (2008-11-28 14:56) [12]
> Его просто берешь с сервера и ставишь на клиент.
вот именно
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c