Название: драйвер MySQL Отправлено: cooler_3105 от Апрель 16, 2009, 23:15 Как мне кажется, я собрал плагин мускула успешно (в папке %Qt%\plugins\sqldrivers лежат qsqlmysql4.dll и qsqlmysqld4.dll). Но при компиляции проекта двайвер мускула все равно не находится:
Код: QSqlDatabase: QMYSQL driver not loaded Название: Re: драйвер MySQL Отправлено: Пантер от Апрель 17, 2009, 06:16 Поищи по форуму "Driver not loaded" и будет тебе счастье. Не поверишь, сколько постов с этой фразой найдешь.
Распиши по шагам как собирал плагин. Название: Re: драйвер MySQL Отправлено: cooler_3105 от Апрель 17, 2009, 10:08 Я собирал драйвер по схеме
Код: This is a small HOWTO, explaining on how to convert the MySQL libraries При попытке сборки драйвера способом: Код: 1) Переходим в каталог с библиотеками MySQL: Код: mingw32-make -f Makefile.Debug all Название: Re: драйвер MySQL Отправлено: Пантер от Апрель 17, 2009, 11:40 Нужно было сначала make clean сделать.
Закинь рядом с плагином dll от MySQL. Название: Re: драйвер MySQL Отправлено: cooler_3105 от Апрель 17, 2009, 19:27 Мускул собрал :) Но теперь вылазит ошибка следующего рода:
Код: QSqlError(0, "QMYSQL: Unable to open database 'diabetes'", "") Название: Re: драйвер MySQL Отправлено: cooler_3105 от Май 10, 2009, 19:45 Прошу подсказать одну вещь: при подключении к БД под управлением MySQL
Код: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); Название: Re: драйвер MySQL Отправлено: Пантер от Май 12, 2009, 06:22 Путь указывать не нужно, нужно указать псевдоним, что ты уже сделал db.setDatabaseName("diabetes");.
Название: Re: драйвер MySQL Отправлено: lit-uriy от Май 12, 2009, 11:15 >>нужно указать псевдоним,
А сам псевдоним как для MySQL'я указать, т.е. ассоциировать с конкретной БД? Название: Re: драйвер MySQL Отправлено: Пантер от Май 12, 2009, 18:37 Не знаю как под мускулем, но под птицей есть файлик в котором есть записи
mybase=c:\mybase.fdb И в клиентах указываешь именно mybase Название: Re: драйвер MySQL Отправлено: cooler_3105 от Май 13, 2009, 08:07 Не знаю как под мускулем, но под птицей есть файлик в котором есть записи Да, под птицей юзается алиас... Может все таки кто-нибудь знает, как поступать с мускулем?mybase=c:\mybase.fdb И в клиентах указываешь именно mybase Название: Re: драйвер MySQL Отправлено: developer от Май 13, 2009, 11:17 А ты проверь что ета база существует, а то она не откроется если ее там нету(как на локальной так и на удаленной машине). Проверь еще ip адрес удаленной машины. Также проверь права доступа к етой базе для других удаленных машин(твоя база просто может не пускать тебя с какой-то иной машины). Если ты не имееш прав доступа, тогда на локальной машине нужно их добавить в таблицу user базы mysql. (Внизу дескрипшн етой таблицы).
Field | Type | Null | Key | Default | Extra | +-----------------------+-----------------------------------+------+-----+---------+-------+ | Host | varchar(60) | | PRI | | | ----------------------------- здесь простым инсертом вводиш хост с которого ты хочеш достучаться | User | varchar(16) | | PRI | | | ----------------------------- здесь вводишь юзера, с правами которого ты будешь стучать(он должеш существовать в базе) | Password | varchar(41) | | | | | ------------------------- здесь пароль | Select_priv | enum('N','Y') | | | N | | ------------------- а здесь и внизу пошли твои права Y(yes) or N(no). По умолчанию ставлятся в N. Тоесть исли ты не поправишь то твой юзер практически ничего не зможет | Insert_priv | enum('N','Y') | | | N | | | Update_priv | enum('N','Y') | | | N | | | Delete_priv | enum('N','Y') | | | N | | | Create_priv | enum('N','Y') | | | N | | | Drop_priv | enum('N','Y') | | | N | | | Reload_priv | enum('N','Y') | | | N | | | Shutdown_priv | enum('N','Y') | | | N | | | Process_priv | enum('N','Y') | | | N | | | File_priv | enum('N','Y') | | | N | | | Grant_priv | enum('N','Y') | | | N | | | References_priv | enum('N','Y') | | | N | | | Index_priv | enum('N','Y') | | | N | | | Alter_priv | enum('N','Y') | | | N | | | Show_db_priv | enum('N','Y') | | | N | | | Super_priv | enum('N','Y') | | | N | | | Create_tmp_table_priv | enum('N','Y') | | | N | | | Lock_tables_priv | enum('N','Y') | | | N | | | Execute_priv | enum('N','Y') | | | N | | Название: Re: драйвер MySQL Отправлено: cooler_3105 от Май 13, 2009, 19:41 База существует, права есть...
Т.е. если в строчке Код: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); Т.е. получается, что при работе с ODBC я настраиваю MySQL ODBC Driver, а при работе с родным драйвером MySQL ничего не настраиваю. Наверное при использовании драйвера MySQL надо тоже что-то где-то прописать... Название: Re: драйвер MySQL Отправлено: developer от Май 13, 2009, 23:02 Может у тебя плохая сеть, или файервол нетак настроен, попробуй отключить его на машине клиента и сервера(ето для начала). У меня была подобная ситуация, и ето было связано с плохой пропускной возможностью.
Название: Re: драйвер MySQL Отправлено: cooler_3105 от Май 13, 2009, 23:32 developer, спасибо за рекомендации, я проверю.Через сайт доступ к этой базе есть, поэтому скорее всего дело в моем компе. Попробую отключить фаервол. Т.е. насколько я понял, ты с мускулем работал, и говоришь что дополнительно ничего прописывать не надо, да?
Название: Re: драйвер MySQL Отправлено: break от Май 14, 2009, 01:01 Код: m_DB.setDatabaseName( "D:\\Projects\\TravelBase\\TEST.FDB" ); Вот простой код как я подключаюсь к БД firebird - т.е. алиасы не использую т.к. мне кажется это лишняя настройка на компе клиентов, но иногда наверное удобно. То есть в setDatabaseName - полный путь к БД, несмотря на то что к этой папке файловый доступ закрыт. Как в MySql не знаю - чтобы проверить доступен ли сервер с БД - пропингуйте через порт на кот. работает MySql. (я так проверяю telnet xxx.xxx.xxx.xxx 3050 - для FB) Меня например в Windows Брандмауер стандартный частенько обломить пытается... Название: Re: драйвер MySQL Отправлено: developer от Май 14, 2009, 13:21 Цитировать developer, спасибо за рекомендации, я проверю.Через сайт доступ к этой базе есть, поэтому скорее всего дело в моем компе. Попробую отключить фаервол. Т.е. насколько я понял, ты с мускулем работал, и говоришь что дополнительно ничего прописывать не надо, да? Да я работал с мускулем. Правда я ничего лишнего не настраивал. То-есть я заинсталлил мускуль на удаленный сервер, прописал ему статическую айпишку(серверу). Потом с клиента коннектился на ету айпишку, с указанием базы, пароля, логина. На етом же клиенте в папке с прогой был плагин мускуля(конечно он был в свою очередь в папку sqldrivers).Когда попробовал подключится, с первой попытки не удалось. Тогда отключил все файерволы, перезапустил мускуль на сервере и все пошло. |