ubuntu 16.04 qt5.6 mysql_Ubuntu 16.04 x64 Qt 5.6连接MySQL数据库笔记

1. 安装Qt、MySQL并配置MySQL

安装Qt 5.6,访问Qt官方网站,下载qt-opensource-linux-x64-5.6.0.run进行安装。

安装MySQL,并创建数据库和用户

1 sudo apt-get install mysql-server2 sudo apt-get install mysql-client3 mysql -u root -p4 create database TestDB;

创建完数据库后,检查是否创建好了

1 show databases;

创建用户并且分配密码

1 insert into mysql.user(Host,User,Password) values("localhost","TestUser",password("123456"));

注意:如果是5.7版之后的MySQL数据库,执行该语句可能会报错:

ERROR 1054 (42S22): Unknown column 'Password' in 'field list'

这是因为新版mysql数据库下已经没有password这个字段了,password字段改成了

authentication_string,那么执行下列这行语句[1]:

CREATE USER 'TestUser'@'localhost' IDENTIFIED BY '123456';

添加用户后进行刷新

flush privileges;

对用户进行授权

grant all privileges on TestDB.* to TestUser@localhost identified by "123456";

再次进行刷新

flush privileges;

安装Qt连接MySQl相关库

安装libmysqlclient-dev

sudo apt-get install libmysqlclient-dev

sudo apt-get install libqt5sql5-mysql

安装完后,在以下目录检查是否存在libqsqlmysql.so

/opt/Qt5.6.0/5.6/gcc_64/plugins/sqldrivers

注意:随Qt安装方式以及版本不同,路径/opt/Qt5.6.0/5.6/gcc_64可能存在差异。

在该目录下进入终端,执行

ldd libqsqlmysql.so | grep not

执行后,若发现存在下列问题:

libmysqlclient_r.so.16 => not found

libssl.so.10 => not found

libcrypto.so.10 => not found

则按照下列第2.2步和第2.3步的方法进行解决[2]。

解决libmysqlclient_r.so.16 => not found的问题。

下载 libmysqlclient.so.16,地址: http://files.directadmin.com/services/debian_5.0_64/libmysqlclient.so.16

下载后将该文件拷贝至/usr/lib/x86_64-linux-gnu,并重命名为libmysqlclient_r.so.16,参照下列命令。

sudo cp /home/xiaoyafu/下载/libmysqlclient.so.16 /usr/lib/x86_64-linux-gnu

cd /usr/lib/x86_64-linux-gnu

sudo mv libmysqlclient.so.16 libmysqlclient_r.so.16

执行完后,重新执行步骤2.1中的ldd libqsqlmysql.so,检查是否解决了该问题。

解决libssl.so.10 => not found和libcrypto.so.10 => not found的问题。

执行下列命令:

sudo apt-get update

sudo apt-get install libssl1.0.0 libssl-dev

cd /lib/x86_64-linux-gnu

sudo ln -s libssl.so.1.0.0 libssl.so.10

sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

执行完后,重新执行步骤2.1中的ldd libqsqlmysql.so,检查是否解决了该问题。

运行测试

启动MySQL,执行:

sudo /etc/init.d/mysql start

执行后,检查MySQL是否正常启动,执行查看命令:

service mysql status

创建Qt MySQl连接测试工程,创建后需要修改.pro文件,在其中加入sql模块

QT += core gui sql

以下是函数代码:

1 #include

2 #include

3 #include

4 #include

5 #include

6 #include

7 int main(int argc, char *argv[])8 {9 QApplication a(argc, argv);10 qDebug() <<:librarypaths qdebug qsqldatabase::drivers>

12 /*

13 * 链接mysql数据库14 */

15 QCoreApplication::addLibraryPath("/opt/Qt5.6.0/5.6/gcc_64/plugins/sqldrivers/libqsqlmysql.so");16 QSqlDatabase db(QSqlDatabase::addDatabase("QMYSQL"));17 db.setHostName("127.0.0.1");18 db.setDatabaseName("TestDB");19 db.setUserName("TestUser");20 db.setPassword("123456");21 if (!db.open()) /*测试数据库是否链接成功*/

22 {23 QMessageBox::critical(0, QObject::tr("Databse Error"), db.lastError().text());24 qDebug() << db.lastError() <

27 {28 qDebug() << "Ok" <

运行该工程,成功,如下图所示。

ddf9575d4e64ec8c2f812b820cca210d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值