Russian Qt Forum
Сентябрь 30, 2024, 12:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Qt 3.3.8] Драйвер для MySQL Embedded под Linux  (Прочитано 5091 раз)
Sergeich
Гость
« : Сентябрь 08, 2007, 12:28 »

Наконец-то разобрался со сборкой сабжа  Веселый Может кому-то окажется полезным. Использовался 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
   
Записан
bigirbis
Гость
« Ответ #1 : Сентябрь 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

Долго ковырялся, но так и не осилил...  Непонимающий
Записан
KADABRA
Гость
« Ответ #2 : Сентябрь 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
Записан
bigirbis
Гость
« Ответ #3 : Сентябрь 19, 2007, 10:53 »

To KADABRA
Ты тему смотрел?
Цитировать
А почему именно через QSqlDatabase::addDatabase()?
Я имел в виду: средствами Qt
Записан
KADABRA
Гость
« Ответ #4 : Сентябрь 19, 2007, 21:04 »

To KADABRA
Ты тему смотрел?
Нет, читал.
Цитировать
А почему именно через QSqlDatabase::addDatabase()?
Я имел в виду: средствами Qt
Средствами Qt инициализировать еммбедед MySQL server? Ну-ну.
« Последнее редактирование: Сентябрь 20, 2007, 11:22 от KADABRA » Записан
crocus
Гость
« Ответ #5 : Сентябрь 20, 2007, 02:17 »

Что ж такие непонятливые Улыбающийся
Сначала в "main"  инициализируем/запускаем embedded MySql сервер, а затем где-нибудь в "connection.h" подключаемся к нему.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.13 секунд. Запросов: 21.