Название: Linux + PostgreSQL 9.0.3 Отправлено: FalconHAM от Март 24, 2011, 11:57 Переустановил openSUSE на 11.4 (недавно вышла).
В предыдущей (suse 11.3) стоял постгрес версии 8.4 в новой 9.0.3 Установил постгрес из репы сообщества. Теперь не могу открыть БД из приложения. :( Код: bool MW::connectDataBase() Пишет: Цитировать FATAL: Ident authentication failed for user "ps" QPSQL: Unable to connect Причем встроенным монитором вхожу без проблем: Цитировать ps@linux-2iht:~> psql tstdb psql (9.0.3) Type "help" for help. tstdb=> Теперь если из приложения попытаться переподключится к базе (после смены имени...) Код: void MW::reconnectDataBase() Еще и на консоль получаю: Цитировать QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work. QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed. Драйвер установлен (указать другой тип БД, ругается что нет драйвера). Да и другие приложения подключиться не могут. В часности pgaccess. Вопрос куда рыть? Почему psql подключается к БД: Цитировать тип - QPSQL имя БД - tstdb хост - localhost имя и пароль юзера по умолчанию владельца БД а из приложения при тех же параметрах входа - ошибка идентификации. Брандмауэр отключен на время. Qt шный драйвер? Может кто встречался с подобным Название: Re: Linux + PostgreSQL 9.0.3 Отправлено: Admin от Март 24, 2011, 14:10 По мне проблема с тем, что прав на удаленное соединение нет. Можно быстренько проверить, наваяв скрипт на php или python.
А смотреть нужно на файлик /etc/postgresql/8.3/main/pg_hba.conf Цитировать # # Database administrative login by UNIX sockets local all postgres ident sameuser # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident sameuser # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 в нем видно будет, какая авторизация для коннектов по сети. Сравните файлики в 8 и 9 версии. PS: сам еще 9 не щупал Название: Re: Linux + PostgreSQL 9.0.3 Отправлено: FalconHAM от Март 24, 2011, 15:05 Вот последние строки из pg_hda.conf Цитировать # TYPE DATABASE USER CIDR-ADDRESS METHOD В 8.4 один в один. # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust Название: Re: Linux + PostgreSQL 9.0.3 Отправлено: FalconHAM от Март 24, 2011, 21:37 Нда!
Оказалось все проще и сложней ;) Я пытался поставить БД командой initdb в каталог /usr/pgsql/ Установка проходила успешно. После чего я на всякий, перезапускал службу postgresql где между остановом и запуском оказывается проходила инициализация другой БД в каталог /var/lib/pgsql/ владелцем которой был ессно postgres. Далее я запускал pg_ctl -D /usr/pgsql start и монитором psql от имени postgres (перед этим initb я запускал с ключом -U postgres), создавал новую БД с овнером на свое имя. После монитором входил от своего имени в БД которая в /usr и кажется все ОК. Но когда я подключался с из приложения... эта... почему то пыталась подключить меня к той БД которую создала сама, где хозяином был postgres Пришлось удалить весь /var/lib/pgsql/data/, создать на это место свою БД (initdb без ключа -U. Затем запустить postmaster, указав ему этот путь. Ну сейчас все работает, но только теперь я в базе являюсь суперюзером :o оба темплэтйа созданы мной и мне там все дозволено :-\ Надо будет задать вопрос на постгришном сайте. |