Ubuntu 16.04 x64 Qt 5.6连接MySQL数据库笔记
来源:互联网 发布:sweetalert.js 编辑:程序博客网 时间:2024/05/29 07:33
(本人在作业部落上的原文:https://www.zybuluo.com/lovemiffy/note/435940)
1. 安装Qt、MySQL并配置MySQL
1.1 安装Qt 5.6,访问Qt官方网站,下载qt-opensource-linux-x64-5.6.0.run进行安装。
1.2 安装MySQL,并创建数据库和用户
sudo apt-get install mysql-serversudo apt-get install mysql-clientmysql -u root -pcreate database TestDB;
创建完数据库后,检查是否创建好了
show databases;
创建用户并且分配密码
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;
2. 安装Qt连接MySQl相关库
2.1 安装libmysqlclient-dev
sudo apt-get install libmysqlclient-devsudo 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
执行后,若发现存在下列问题:
libmysqlclient_r.so.16 => not foundlibssl.so.10 => not foundlibcrypto.so.10 => not found
则按照下列第2.2步和第2.3步的方法进行解决2。
2.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-gnucd /usr/lib/x86_64-linux-gnusudo mv libmysqlclient.so.16 libmysqlclient_r.so.16
执行完后,重新执行步骤2.1中的ldd libqsqlmysql.so
,检查是否解决了该问题。
2.3 解决libssl.so.10 => not found
和libcrypto.so.10 => not found
的问题。执行下列命令:
sudo apt-get updatesudo apt-get install libssl1.0.0 libssl-devcd /lib/x86_64-linux-gnusudo ln -s libssl.so.1.0.0 libssl.so.10sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10
执行完后,重新执行步骤2.1中的ldd libqsqlmysql.so
,检查是否解决了该问题。
3. 运行测试
3.1 启动MySQL,执行:
sudo /etc/init.d/mysql start
执行后,检查MySQL是否正常启动,执行查看命令:
service mysql status
3.2 创建Qt MySQl连接测试工程,创建后需要修改.pro文件,在其中加入sql
模块
QT += core gui sql
以下是函数代码:
#include <QApplication>#include <QMessageBox>#include <QDebug>#include <QtSql/QSqlDatabase>#include <QtSql/QSqlDriver>#include <QtSql/QSqlError>int main(int argc, char *argv[]){ QApplication a(argc, argv); qDebug() << QCoreApplication::libraryPaths(); qDebug()<<QSqlDatabase::drivers()<<endl; /*列出qt可用的数据库*/ /* * 链接mysql数据库 */ QCoreApplication::addLibraryPath("/opt/Qt5.6.0/5.6/gcc_64/plugins/sqldrivers/libqsqlmysql.so"); QSqlDatabase db(QSqlDatabase::addDatabase("QMYSQL")); db.setHostName("127.0.0.1"); db.setDatabaseName("TestDB"); db.setUserName("TestUser"); db.setPassword("123456"); if (!db.open()) /*测试数据库是否链接成功*/ { QMessageBox::critical(0, QObject::tr("Databse Error"), db.lastError().text()); qDebug()<<db.lastError()<<endl; } else { qDebug()<<"Ok"<<endl; } return 0;}
3.3 运行该工程,成功,如下图所示。
- 参考:http://blog.csdn.net/u010603691/article/details/50379282,https://dev.mysql.com/doc/refman/5.7/en/adding-users.html ↩
- 此解决方法引用博客文章:http://blog.csdn.net/seamanj/article/details/51429125 ↩
- Ubuntu 16.04 x64 Qt 5.6连接MySQL数据库笔记
- Ubuntu 16.04 x64 Qt 5.6连接MySQL数据库笔记
- Ubuntu 下使用Qt连接MySQL数据库
- Ubuntu QT C连接mysql数据库
- ubuntu Qt连接MySQL
- qt连接mysql数据库
- Qt 连接MySQL数据库
- Qt连接MySql数据库
- Qt 连接MYSQL数据库
- Qt连接MySQL数据库
- QT---连接mysql数据库
- Qt 连接MySQL数据库
- QT连接MYSQL数据库
- Qt连接MySQL数据库
- ubuntu linux 下使用Qt连接MySQL数据库
- qt连接数据库(MySQL)
- Qt远程连接MySql数据库
- Qt远程连接MySql数据库
- 海量数据处理面试题
- 排序算法------快速排序
- Android手机与多个BLE设备通信
- 多处理机Cache一致性问题及解决办法
- linux pgrep
- Ubuntu 16.04 x64 Qt 5.6连接MySQL数据库笔记
- Java?C++?虚函数?抽象?
- C#转义 Console.WriteLine("{0}, {{{1}}}", "ab", "xyz");
- 2016 07 17所学
- gnuradio+USRP实现OpenBTS 5.0安装
- 码神第三天学习(加作业)
- 深度学习与自然语言处理(7)_斯坦福cs224d 语言模型,RNN,LSTM与GRU
- Notification
- 冯诺依曼工作方式的基本特点是____