linux下Qt5.7连接MySQL出现QSqlDatabase: QMYSQL driver not loaded

问题如图所示:

linux下Qt5.7连接MySQL出现QSqlDatabase: QMYSQL driver not loaded_第1张图片

解决方法:

1.进入Qt的安装路劲下,cd到sqldrivers中,如我的是/opt/Qt5.7.1/5.7/gcc_64/plugins/sqldrivers/

执行 ldd libqsqlmysql.so,结果中出现

libmysqlclient_r.so.20 => not found

说明libmysqlclient_r.so.20的依赖没有找到。

2.重装Qt(本人的Qt因为添加/移除功能不能用,只能选择重装),先卸载Qt,然后重新安装,重装过程中,在安装选项中勾选 Source ,如图

linux下Qt5.7连接MySQL出现QSqlDatabase: QMYSQL driver not loaded_第2张图片

3.

sqldrivers]$ sudo  yum install mysql-devel

 4.重新编译mysql

[xxx@ mysql]$ cd ~/opt/Qt5.6.0/5.6/Src/qtbase/src/plugins/sqldrivers/mysql
[xxx@ mysql]$ ~/opt/Qt5.6.0/5.6/gcc_64/bin/qmake
[xxx@ mysql]$ make

5.

如果make提示 /usr/bin/ld: cannot find -lmysqlclient_r

请在root下执行

# cd /usr/local/mysql/lib/mysql/   (库所在目录)
# ln -s libmysqlclient.so.20 libmysqlclient_r.so(其中 数字 20 在不同mysql版本中是不一样的,根据自身环境修改)

此步骤是创建软连接

然后

make clean

make

6。在编译结果的最后一行,

mv -f libqsqlmysql.so ../../../../plugins/sqldrivers/

 这就是make生成库的路径,将该文件复制到  /opt/Qt5.7.1/5.7/gcc_64/plugins/sqldrivers/(本人Qt安装路径)即可。此时重新执行第1步的命令,结果如下:

linux下Qt5.7连接MySQL出现QSqlDatabase: QMYSQL driver not loaded_第3张图片

此时重新运行Q项目就能正常连接MySQL了。

linux下Qt5.7连接MySQL出现QSqlDatabase: QMYSQL driver not loaded_第4张图片

你可能感兴趣的:(Qt)