-
Уважаемые Мастера!
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 (27.11.08 16:20) [1] > на клиенте не по алиасу получается?
Проверил, сейчас не получается, но недавно, когда разбирался с клиентским коннектом (я новичок в Firebird) кажется проходило. При этом в firebird.conf было:
... # ---------------------------- # Database Paths/Directories # DatabaseAccess = full ...
-
Чего то я сбит с толку:(
на сервере в firebird.conf: ... DatabaseAccess=None ...
на самом сервере не могу соединиться ни по абсолютному имени, ни по алиасу (Access to database ... is denied by server administrator).
Ладно, теперь делаем исправление
на сервере в firebird.conf: ... # DatabaseAccess=None ...
и перезапускаем сервис FirebirdServer. Теперь и по абсолютному имени файла БД и по алиасу соединение на сервере проходит успешно. На клиенте не коннектится ни так ни эдак.
Я специально выделил знак #. В начале firebird.conf сказано, что все что стоит после # является комментарием...
Как такое понимать?
-
А брандмауэр выключен? или хотя бы порт 3050 открыт на клиенте?
-
Коллеги! Извините, водил Вас "за нос". Прошу не очень больно бить ногами: > А брандмауэр выключен? или хотя бы порт 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 ? Не получилось, хотя я не очень понял почему. Может поясните? Спасибо Всем за участие.
-
конечно, нельзя
-
Во-первых, укажите вариант сервера (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
-
To PEAKTOP © (28.11.08 12:35) [7] Обошлось, как видите, без "хрустального шара" :). Ваше № 3
To Виталий Панасенко (28.11.08 12:33) [6] > конечно, нельзя
даже Ваше убедительное "конечно" не проясняет мне ситуацию...
-
> даже Ваше убедительное "конечно" не проясняет мне ситуацию.
нельзя потому, что клиент не знает, где именно он должен разжиться алиасом вот когда указываешь имя сервера, он уже там и проверяет наличие алиаса а так серверов в сети - вон, полный интернет все перебирать будешь?
-
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 похоже.
-
Кстати, ошибочка в [5] хотел написать не
dummy = MyCompAsFBServer.OurCommunity.local:Dummy:C:\FBDB0\my02.fdb,
а
dummy = MyCompAsFBServer.OurCommunity.local:C:\FBDB0\my02.fdb
-
> Его просто берешь с сервера и ставишь на клиент.
вот именно
|