Russian Qt Forum

Qt => Базы данных => Тема начата: Sergeich от Сентябрь 08, 2007, 12:28



Название: [Qt 3.3.8] Драйвер для MySQL Embedded под Linux
Отправлено: Sergeich от Сентябрь 08, 2007, 12:28
Наконец-то разобрался со сборкой сабжа  :D Может кому-то окажется полезным. Использовался MySQL 4.0.27.
1) Ставим или собирем MySQL со встраиваемым сервером. При сборке из исходников юзаем ./configure --with-embedded-server, в папке с MySQL-ными библиотеками должна появиться libmysqld.a
2) Запускаем mysql_config --include --libmysqld-libs. Он должен выдать что-то типа:
-I/usr/local/include/mysql
-L/usr/local/lib/mysql -lmysqld -lpthread -lz -lcrypt -lnsl -lm -lpthread -lrt
3) Лезем в $QTDIR/plugins/src/sqldrivers/mysql и курочим mysql.pro (предварительно желательно скопировать папку mysql в какую-нить mysqlemb).
Комментим
  LIBS    *= -lmysqlclient
Добавляем
  INCLUDEPATH += /usr/local/include/mysql
  LIBS += -L/usr/local/lib/mysql -lmysqld -lpthread -lz -lcrypt -lnsl -lm -lpthread -lrt
4) Опционально меняем название драйвера в $QTDIR/plugins/src/sqldrivers/mysql/main.cpp: заменяем "QMYSQL3" на что-нить более подходящее типа "QMYSQLEMB"
5) cd $QTDIR/plugins/src/sqldrivers/mysql; qmake; make
   


Название: Re: [Qt 3.3.8] Драйвер для MySQL Embedded под Linux
Отправлено: bigirbis от Сентябрь 19, 2007, 10:18
Еще один вопрос по теме:
Каким образом при добавлении подключения ( QSqlDatabase::addDatabase() ) передать этому серверу параметры?
К примеру:
Цитировать
innodb_data_home_dir=current_path
innodb_log_group_home_dir=current_path
innodb_log_arch_dir=current_path
innodb_data_file_path="ibdata1:10M:autoextend";
datadir=current_path

Долго ковырялся, но так и не осилил...  ???


Название: Re: [Qt 3.3.8] Драйвер для MySQL Embedded под Linux
Отправлено: KADABRA от Сентябрь 19, 2007, 10:46
Еще один вопрос по теме:
Каким образом при добавлении подключения ( QSqlDatabase::addDatabase() ) передать этому серверу параметры?
К примеру:
Цитировать
innodb_data_home_dir=current_path
innodb_log_group_home_dir=current_path
innodb_log_arch_dir=current_path
innodb_data_file_path="ibdata1:10M:autoextend";
datadir=current_path

Долго ковырялся, но так и не осилил...  ???
А почему именно через QSqlDatabase::addDatabase()?
Вроде как инициализировать сервер прийдётся самому: http://dev.mysql.com/doc/refman/5.0/en/mysql-library-init.html


Название: Re: [Qt 3.3.8] Драйвер для MySQL Embedded под Linux
Отправлено: bigirbis от Сентябрь 19, 2007, 10:53
To KADABRA
Ты тему смотрел?
Цитировать
А почему именно через QSqlDatabase::addDatabase()?
Я имел в виду: средствами Qt


Название: Re: [Qt 3.3.8] Драйвер для MySQL Embedded под Linux
Отправлено: KADABRA от Сентябрь 19, 2007, 21:04
To KADABRA
Ты тему смотрел?
Нет, читал.
Цитировать
А почему именно через QSqlDatabase::addDatabase()?
Я имел в виду: средствами Qt
Средствами Qt инициализировать еммбедед MySQL server? Ну-ну.


Название: Re: [Qt 3.3.8] Драйвер для MySQL Embedded под Linux
Отправлено: crocus от Сентябрь 20, 2007, 02:17
Что ж такие непонятливые :)
Сначала в "main"  инициализируем/запускаем embedded MySql сервер, а затем где-нибудь в "connection.h" подключаемся к нему.