This doucment is about how to add MySQL driver into QT and about database connections
由于之前安装RedHat的时候是自动选择安装了mysql数据库以及QT designer,这一阵子用它的时候却因为它在数据库连接中遇到了很大的困难。
问题的出现:
首先想测试一下数据库的连接:选择Projects-->database Connections,弹出一个Edit Database connections的对话框,点击New connection,在右边出现可编辑的选项,以下是配置:
Name: default
Driver:点击下拉框,没有反应,于是我就按照QT Assistant上说的填上QMYSQL3
我的数据库名先使用自带的mysql
Database Name:mysql
User name: root
Passworld: ********(填上自己设置的密码)
Host name: mscl
然后就单击connect 按钮,弹出
can't not connect to the database
Please ensure that the database server is running and that all connection information is correct,[Driver not loaded]
郁闷了很久,究竟驱动是出在什么问题上,google了又百度了半天没有什么头绪,起始还以为是Mysql数据库的问题,于是将原来用RPM安装的Mysql数据库删了,重新到到社区中下载了个二进制的压缩包mysql-5.0.45-linux-i686.tar.gz,其本上解压出来就可以用了,启动了服务器,重新按上面的设置进行连接,但是还是出现原来一样的问题,于是就想如果QT真的是支持MySQL驱动的话,应当在driver的下拉框中可以看得到的,于是将问题怀疑到Qt的驱动中。
在网上看了一些关于编译mysql驱动的文章,自己也阅读了Assistan中的关于编译mysql驱动的部分,其原文是这样的:
How to build the plugin on Unix/Linux
You need the MySQL header files and as well as the shared library libmysqlclient.so. Depending on your Linux distribution you need to install a package which is usually called "mysql-devel".
Tell qmake where to find the MySQL header files and shared libraries (here it is assumed that MySQL is installed in /usr/local) and run make:
cd $QTDIR/plugins/src/sqldrivers/mysql
qmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient" mysql.pro
make
于是我就找到QT3的安装目录(我的是在/usr/lib/qt 3.3/plugins),但是我的却没有src/sqldrivers/mysql目录,没有mysql驱动的源代码,编译MySql驱动就无从谈起,于是又去看一下有没有mysql在Qt中的驱动的源代码,搜了一个晚上,边条毛也没有看到,很晚了就先睡了,究竟还有没有其它的办法?(周公寻梦)。。。
早上8点起床,继续吧!
突然起了重新装一个QT的想法,没有办法了只好试了一下,到IT68中下了个QT3.1版本的,12来M吧,然后就开始安装:
1.选择安装路径
shell>cd /usr/local
2.解压下载的安装包 (版本号不同,下面的编译过程可能不同,以源目录下的INSTALL文件为准)
shell>tar -jxvf qt-x11-free-3.1.2.tar.bz2
3.设置环境变量(后来发现这一部分可以不用,因后在后面的.login中已经设置好了)
在我的/etc/bashrc中添加如下几行:
QTDIR=/usr/local/qt :安装的根目录
PATH=$QTDIR/bin:$PATH :可执行文件目录
MANPATH=$QTDIR/doc/man:$MANPATH :man文档目录
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH :库文件的目录
如果你的安装路径不是跟我的一样,一定要设成相应的。
4.配置configure脚本
我这里选用的都是默认配置所以只输入
shell> ./configure
如果你想改变安装的路径,或者是选择安装的库文件及头文件的位置,可以使用下面的选项
./configure -libdir /usr/local/lib -bindir /usr/local/bin -headerdir /usr/local/include/qt
这样你的QT的库文件,头文件目录就在相应的目录下了,但是记住你如果在这里进行了设置也一定要在第三步中的环境变量中进行相应的发动。还有一个--prefix选项,该选项设置 qt 安装的目的目录
5.编译
shell> make
这需要比较长的时间,我的机子配置是CPU 速龙1.8G,1G内存大概用了20来分钟。
在编译过程中出现了一个错误,忘了记下来了,大概就是说在fbm.c中noise3是静态的,但是在fbm.h中的声明是却是非静太的,在examples/demo/opengl下找到这两个文件,将fbm.h中的float noise3(float vec[])最前面加入static,保存。继续键入make.
6.安装
shell> make install
this process also take serval minutues,so you should be patient.
7.安装完毕后,我找到bin目录下,运行designer,TMD果然行了,一个QT界面慢慢地展现在我的面前。