Шрифт:
Интервал:
Закладка:
Прослушивает ли сервер порт Firebird?
Сервис gds db (порт 3050) не будет отвечать, если серверный процесс не был запущен. См. табл. П2.1, где содержатся инструкции по запуску сервера.
Таблица П2.1. Запуск сервера
ОС
Инструкции
Суперсервер
POSIX
Из командной строки войдите в каталог Firebird /bin и введите команду ibmgr -start
Windows: сервис
Используйте апплет Панель управления менеджера Firebird и щелкните мышью по Start, или в командной строке введите команду NET START FirebirdGuardianDefaultlnstance. В версии 1.0.x введите команду NET START FirebirdGuardian. Вы также можете попытаться запустить этот сервис из апплета Сервисы
Windows: приложение
Запустите Firebird Guardian или Firebird Server из меню Пуск
Классический сервер
POSIX
Здесь не надо ничего делать. Если демон xinet (или inet на старых системах) запущен, он должен стартовать экземпляр fb_inet_server (ib_inet_server для версии 1,0.x), когда вы пытаетесь соединиться с базой данных
Windows: сервис
Перейдите в окно командной строки и введите NET START FirebirdGuardianDefaultlnstance. Вы также можете попытаться запустить этот сервис из апплета Сервисы
Windows: приложение
Запустите Firebird Server из меню Пуск. Замечание: не пытайтесь запускать Классический сервер из апплета Панель управления, не пытайтесь запускать приложение Guardian
Вы получили ошибку, хотя сервис выполняется?
Если клиент получает доступ к серверной машине и сервис gdsdb отвечает, но все еще не может соединиться с базой данных, вы можете увидеть ошибку отказа в соединении (connection rejected). Возможные варианты тестирования описаны в следующих разделах.
Находится ли база данных на физически локальном диске?
Файл базы данных не должен размещаться в файловой системе NFS, на назначенном или совместно используемом диске. Когда процесс ibserver обнаруживает такую ситуацию, он отказывает в соединении.
Для исправления этой ситуации переместите вашу базу данных в файловую систему на жесткий диск, который является физически локальным для сервера базы данных, и скорректируйте соответствующим образом вашу строку соединения.
Правильные ли имя пользователя и пароль?
Клиентское приложение должно использовать комбинацию имени пользователя и пароля, которая соответствует записи в базе данных безопасности на сервере. Эта база данных должна находиться в корневом каталоге инсталляции Firebird и должна быть перезаписываемой серверным процессом.
Имена пользователей и пароли применимы к серверу, а не к отдельной базе данных. Если вы перенесли базу данных с другого сервера, на котором были установлены роли и привилегии, то вы должны установить нужных пользователей на новом сервере.
Имеет ли владелец серверного процесса достаточно полномочий для открытия файлов?
Полномочия к файловой системе, включая права к каталогам, могут вызвать проблемы в POSIX. Полномочия к каталогам могут вызвать проблемы в разделах Windows MTFS.
Серверному процессу может понадобиться больше полномочий по созданию файлов (например, firebird.log или interbase.log) р корневом каталоге Firebird.
Попытки доступа к базам данных в областях файловой системы, которые не сконфигурированы для доступа к базе данных, могут вызвать проблемы в Firebird 1.5 и более поздних - см. параметр DatabaseAccess В файле firebird.conf.
! ! !
ПРИМЕЧАНИЕ. Если вы изменяли firebird.conf (версия 1.5+) или ibconfig/ isc_config (версия 1.0.x), вам будет нужно остановить сервер и заново запустить его, чтобы изменения вступили в силу.
. ! .
Может ли клиент найти хост?
Сообщение об ошибке "Unable to complete network request to host" (Невозможно завершить сетевой запрос к хосту) появляется, когда клиент Firebird не может установить сетевое соединение с серверной машиной. Существует несколько общих причин.
* Клиент не может найти хост в вашей сети. Ваш сервер Firebird должен выполняться в той сети, которую вы используете. Если имя хоста определяет хост, который недоступен по причине нарушений в сети, или хост просто не включен, запрос на соединение не может быть выполнен.
* Используются старые драйверы и/или клиентские библиотеки. Вы должны использовать драйверы (ODBC, BDE и т.д.), сертифицированные для работы с вашей версией сервера Firebird. Например, SQL Explorer, который поставляется вместе с некоторыми продуктами Borland, вероятно, не сможет работать с Firebird по причине использования слишком старой версии BDE.
* Приложение находит неверную клиентскую библиотеку. Все версии инструментов администратора пытаются загрузить библиотеку libgds.so (клиенты POSIX) или gds32.dll (клиенты Windows), отыскивая ее по системному пути по умолчанию. Клиент Firebird 1.5 имеет имя libfbclient .so или fbclient.dll и не располагается по системному пути по умолчанию. Изучите самые последние замечания в каталоге Firebird /doc и/или в корневом каталоге, чтобы найти решение.
* На месте имени сервера используется адрес IP. Если вы предоставляете адрес IP вместо имени хоста (имя сервера), то драйвер TCP/IP может оказаться неспособным разрешить его, или время попытки разрешения может оказаться слишком большим. Обычно это проблема Windows 95 и ранних версий NT 4. См. предыдущие замечания по созданию записи в файле hosts и использованию ее для всех клиентских машин.
* Адрес IP хоста является непостоянным. Системы, которые используют динамическую адресацию IP, могут изменять адрес IP хоста без выдачи предупреждающих сообщений. Похожие проблемы могут возникнуть, если хост-машина имеет более одной сетевой карты. Создайте записи в файле hosts на серверной и клиентской машинах, чтобы связать имя сервера с адресом IP. Firebird 1.5 также предоставляет возможность конфигурирования RemoteBindAddress для того, чтобы соединения могли находить правильный канал для сервера Firebird.
* Отсутствует или неправильная запись gdsjib в файле services. Клиенты Firebird будут отыскивать сервис gds db в порте по умолчанию 3050. Если вы изменили символ сервиса или номер порта в файле services, вероятно, у вас недостаточно информации в строке соединения, чтобы можно было выполнить это соединение. Вернитесь к разд. "Конфигурирование сервиса порта TCP/IP" главы 2, если вам нужно сделать подобную установку.
! ! !
ПРИМЕЧАНИЕ. Вероятны также проблемы с сервисом порта, если у вас сервер InterBase или другой сервер Firebird, запущенный на той же серверной машине. Хотя это можно делать в версии 1.5, однако требует аккуратности при конфигурировании и не может быть указано в момент установки Firebird.
. ! .
* Указанный сетевой протокол недоступен. Синтаксис строки соединения в Firebird определяет сетевой протокол, используемый клиентом для соединения с сервером. Если ваш сервер не поддерживает протокол, указанные в строке соединения, то попытка соединения будет неудачной с появлением ошибки сети. Например, строка соединения для именованных каналов Windows (NetBEUI) не будет работать, если сервер выполняется под Windows 95/98, ME или XP, в Linux или на другой платформе POSIX. Только TCP/IP будет работать на этих платформах.
! ! !
ПРИМЕЧАНИЕ. Клиентская библиотека Firebird не поддерживает сетевой протокол IPX/SPX. Соединение будет неудачным, если вы попытаетесь использовать IPX/SPX, задавая его в строке соединения с базой данных в виде [email protected]:/path/database.fdb.
. ! .
* Вы пытаетесь соединиться с совместно используемым устройством. Невозможно соединиться с базой данных в Windows, NFS или SMB (Samba) с совместно используемым устройством. Должен использоваться абсолютный путь файловой системы, как он виден с хоста.
* Строка пути несовместима с существующим соединением. Суперсервер Firebird будет блокировать соединение, если полученная строка пути несовместима с путем, используемым в существующем соединении. В Firebird добавлен этот механизм для защиты баз данных от давно существующей ошибки в предыдущем коде InterBase, что приводило к разрушению сервера с базами данных Windows.
! ! !
ВНИМАНИЕ! Классический сервер не имеет такой защиты. Если у вас Классический сервер под Windows, убедитесь, что различные клиенты всегда соединяются с использованием такой же строки пути. Несовместимость появляется, т. к. Windows примет обозначение диска без последующей наклонной черты, а именно C:Databasesmydb.fdb вместо C:Databasesmydb.fdb. Это не является проблемой в POSIX, которая не имеет таких предпосылок к несовместимости.
. ! .
Нужно ли вам отключить автоматический набор номера для Интернета в Windows?
Операционные системы Microsoft Windows предоставляют по умолчанию сетевую возможность, удобную для пользователей, которые используют модем для подключения к Интернету - любой запрос TCP/IP, который появляется в сети, активизирует автоматическую программу набора номера. Это может стать проблемой для клиентских систем, использующих TCP/IP для доступа к серверу Firebird в локальной сети. Поскольку клиентские запросы применяют сервис TCP/IP, автоматически вызывается программа Windows набора номера, влияя на сетевые соединения от клиента к серверу.
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование