Проблемы с подключением к базе — различия между версиями
(→Firebird запущен?) |
|||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 9: | Строка 9: | ||
Для Superserver: | Для Superserver: | ||
<pre> | <pre> | ||
+ | # ubuntu | ||
+ | service firebird2.1-super status | ||
+ | |||
+ | # остальные | ||
service firebird status | service firebird status | ||
</pre> | </pre> | ||
Строка 172: | Строка 176: | ||
Если в соединении отказано не будет, это уже хорошо. Пробуйте при установке алфавитки указать путь явно, не используя кнопку автоопределения, для справки по путям, соответствующим дистрибутивам, нажмите кнопку "Показать подсказку". | Если в соединении отказано не будет, это уже хорошо. Пробуйте при установке алфавитки указать путь явно, не используя кнопку автоопределения, для справки по путям, соответствующим дистрибутивам, нажмите кнопку "Показать подсказку". | ||
+ | |||
+ | На случай, если клиент telnet-клиент всё ещё не установлен на машине с Windows 7, её можно установить так: Пуск, Панель управления, Программы и компоненты, Включение или отключение компонентов Windows, Клиент Telnet (ставим галочку) - Ok. | ||
Если проба telnet-ом не прошла, можно посмотреть в сторону фаерволов. На стороне клиентской машины универсальный совет: если на машине установлены какие-либо средства защиты, например Kaspersky Internet Security и ему подобные, стоит попробовать выключить их на время процесса установки Алфавитной книги. | Если проба telnet-ом не прошла, можно посмотреть в сторону фаерволов. На стороне клиентской машины универсальный совет: если на машине установлены какие-либо средства защиты, например Kaspersky Internet Security и ему подобные, стоит попробовать выключить их на время процесса установки Алфавитной книги. | ||
Строка 187: | Строка 193: | ||
Автоопределение того, что компонент уже установлен весьма поверхностное. Если ничего не помогает, стоит попробовать переустановить Алфавитную книгу, поставив галки принудительно. | Автоопределение того, что компонент уже установлен весьма поверхностное. Если ничего не помогает, стоит попробовать переустановить Алфавитную книгу, поставив галки принудительно. | ||
+ | |||
+ | === AltLinux Школьный сервер v5.0.1 === | ||
+ | |||
+ | Для доступа к БД Алфавитной книге с других машин необходимо на сервере в веб-интерфейсе администратора в разделе "Брандмауэр" добавить порт 3050 в "Дополнительные порты TCP". |
Текущая версия на 12:29, 6 апреля 2015
Почти все проверки и исправления можно выполнить только от пользователя root, рекомендуем перед началом решения проблемы сразу же в него переключиться.
Содержание
Подключение портала к базе
Firebird запущен?
Как проверить
Для Superserver:
# ubuntu service firebird2.1-super status # остальные service firebird status
Название сервиса "firebird" может отличаться между дистрибутивами. Например, может быть "firebird2.1" или "firebird-superserver".
Для classic:
Classic работает через xinetd. Поэтому первым делом проверьте, запущен ли он.
service xinetd status
Возможно, после установки Firebird требуется перезапустить xinetd, чтобы он перечитал файлы конфигурации, в том числе и конфиг для firebird-classic.
Как исправить
Попробуйте перезапустить firebird-superserver или xinetd в зависимости от установленной версии Firebird:
# classic service xinetd restart # superserver service firebird start # или service firebird2.1-super start
Убедитесь также, что в /etc/services есть запись для firebird:
grep gds_db /etc/services # результат должен быть: # gds_db 3050/tcp
Если нет, добавьте.
Результат должен быть таким: Firebird должен отвечать на порту tcp/3050.
# Проверка прямо на сервере telnet 127.0.0.1 3050
Сервер перезагрузили, а firebird снова не запущен?
Исправление:
# пример из убунты 10.04 lts update-rc.d firebird2.1-super enable # пример из alt linux chkconfig firebird on
Правильно ли указан адрес сервера и путь к базе в конфиге?
Как проверить
Выполните и сверьтесь:
grep db_ /var/www/cgi-bin/sp/sp.conf db_server = 127.0.0.1 # <--- адрес сервера db_path = /path/to/database.gdb # <--- путь к базе db_user = *** db_pass = *** grep cmsdb /var/www/cgi-bin/sp/sp.conf cmsdbhost = 127.0.0.1 # <--- адрес сервера cmsdbname = /path/to/database-cms.gdb # <--- путь к базе cmsdbuser = *** cmsdbpasswd = ***
Файлы должны существовать на сервере с указанным адресом (допустимы IP-адреса и DNS-имена). Файл должен быть доступен firebird. Убедитесь, что пользователю firebird разрешено читать и писать в файлы БД.
Пример исправления:
# выяснить, есть ли файл и какие у него права и владелец ls -l /path/to/database.gdb # задать владельца chown firebird:firebird /path/to/database.gdb # задать права на чтение и запись (остальным нужно запретить всё) chmod 660 /path/to/database.gdb
Правильно ли указан логин и пароль?
Как проверить:
# Значения переменных СЕРВЕР, БАЗА, ЛОГИН, ПАРОЛЬ # брать в /var/www/cgi-bin/sp/sp.conf # Основная база данных: # переменные db_server, db_path, db_user, db_pass # Система управления Школьным сайтом: # переменные cmsdbhost, cmsdbname, cmsdbuser, cmsdbpasswd isql СЕРВЕР:БАЗА -user ЛОГИН -pass ПАРОЛЬ # в ubuntu isql-fb СЕРВЕР:БАЗА -user ЛОГИН -pass ПАРОЛЬ
В ответ вы должны увидеть приглашение порулить базой:
Database: СЕРВЕР:БАЗА, User: ЛОГИН
Чтобы выйти из инструмента isql, наберите quit;
или нажмите Ctrl + D.
Инструмент isql может называться fbsql, isql-fb в зависимости от дистрибутива.
Если вы не увидели приглашение, а вместо этого получили отказ, устраните причину и попробуйте снова. Типичные проблемы: неверный путь, права доступа или владелец, неправильно указан пароль.
Чтобы изменить пароль, воспользуйтесь советами из документации по Firebird (помните о различии в путях в разных дистрибутивах, не воспроизводите рецепты без вникания):
- http://www.firebirdsql.org/manual/ru/qsg15-other-necessities-ru.html#d0e937
- http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/ru/fbutils-scripts-dba-password-ru.html
- http://www.ibprovider.com/rus/documentation/firebird.html#firebird_sysdba_user_management
Фаерволл
Если вы используете firebird-classic, нет ли ограничения по адресам?
# проверка grep only_from /etc/xinetd.d/firebird
Нет ли правила в iptables, запрещающего всё, кроме разрешённого, причём в разрешённом нет tcp/3050?
Нет ли правила в iptables, запрещающего соединения на tcp/3050?
iptables --list | less
Подключение Алфавитной книги к базе
Во время установки Алфавитной книги есть шаг, на котором следует указать ip-адрес сервера, где установлен Школьный портал и путь к базе.
Если этот шаг не удаётся пройти даже с помощью кнопки "Автоопределение пути", проверьте следующее:
Доступен ли портал именно с той же машины, на которую производится установка Алфавитной книги, если зайти на внутрисетевой ip-адрес сервера браузером?
На всякий случай, адреса всех сетевых интерфейсов можно получить на сервере командами:
ip a
или
ifconfig
Если портал отвечает, попробуйте с той машины пощупать TCP-порт 3050, например так:
telnet ip_сервера 3050
Если в соединении отказано не будет, это уже хорошо. Пробуйте при установке алфавитки указать путь явно, не используя кнопку автоопределения, для справки по путям, соответствующим дистрибутивам, нажмите кнопку "Показать подсказку".
На случай, если клиент telnet-клиент всё ещё не установлен на машине с Windows 7, её можно установить так: Пуск, Панель управления, Программы и компоненты, Включение или отключение компонентов Windows, Клиент Telnet (ставим галочку) - Ok.
Если проба telnet-ом не прошла, можно посмотреть в сторону фаерволов. На стороне клиентской машины универсальный совет: если на машине установлены какие-либо средства защиты, например Kaspersky Internet Security и ему подобные, стоит попробовать выключить их на время процесса установки Алфавитной книги.
При установке Алфавитной книги есть выбор компонент.
Обязательные компоненты:
- Алфавитная книга
- FireBird v2.0 Client
- BDE v5.01
Галки следующих ниже компонент ставятся только в случае, если компонент НЕ установлен:
- FireBird v2.0 Client
- BDE v5.01
Автоопределение того, что компонент уже установлен весьма поверхностное. Если ничего не помогает, стоит попробовать переустановить Алфавитную книгу, поставив галки принудительно.
AltLinux Школьный сервер v5.0.1
Для доступа к БД Алфавитной книге с других машин необходимо на сервере в веб-интерфейсе администратора в разделе "Брандмауэр" добавить порт 3050 в "Дополнительные порты TCP".