900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Qt连接mysql数据库 数据库开启远程连接 实现QQ登录 注册 修改密码功能(已实现)

Qt连接mysql数据库 数据库开启远程连接 实现QQ登录 注册 修改密码功能(已实现)

时间:2019-04-10 21:34:13

相关推荐

Qt连接mysql数据库 数据库开启远程连接 实现QQ登录 注册 修改密码功能(已实现)

视频示例:如下直通车

Qt连接数据库

个人博客直达

一、安装Mysql数据库软件

1.下载安装连接:点击连接

2.解压,打开如下

3.设置环境变量

4.修改添加环境变量

5.新建配置文件my.ini(新建一个空白文件)

[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=D:\\Mysql\\mysql-5.7.33-win32# 设置mysql数据库的数据的存放目录#datadir=D:\\Mysql\\mysql-5.7.33-win32\\Data # 允许最大连接数max_connections=200# 允许连接失败的次数。max_connect_errors=10# 服务端使用的字符集默认为utf8mb4character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODB# 默认使用“mysql_native_password”插件认证#mysql_native_passworddefault_authentication_plugin=mysql_native_password[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[client]# 设置mysql客户端连接服务端时默认使用的端口port=3306default-character-set=utf8mb4

详细安装过程请参考:压缩包安装mysql

6.检测本机QT是否有mysql驱动

没有mysql驱动时出现如下错误:

QSqlDatabase: QMYSQL driver not loaded

检测程序:

#include "widget.h"#include "ui_widget.h"#include <QSqlDatabase>#include <QDebug>#include <QMessageBox>#include <QSqlQuery>#include <QSqlError>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget){ui->setupUi(this);QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//添加驱动db.setHostName("localhost");db.setUserName("root");db.setPassword("123456");db.setDatabaseName("sys");if(!db.open()){QMessageBox::warning(this,"错误",db.lastError().text());return;}QSqlQuery query;qDebug()<<QSqlDatabase::drivers();}Widget::~Widget(){delete ui;}

出现报错,就按照如下教程手动编译mysql驱动:qt连接mysql报错:QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC…

按照教程修改后将会出现如下效果:

进而将驱动以及库文件放到相应的地方!

小插曲:

手动编译仍未出现上面那个文件夹有可能就是qt出现了问题,建议重装!我的就是编译以后没有出现那个文件夹,百度了两天仍未解决,于是乎。。。我就重装了,然后就解决了!

注意:mysql的版本要与qt对应,这里用的是32位的

至此,配置成功!

二、开启连接远程数据库

法一:修改表格

在bin目录下打开数据库

输入:

MySQL>update user set host = '%' whereuser = 'root';

MySQL>select host, user from user;

MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY'mypassword' WITH GRANT OPTION;//解释:开启全部权限,'root'自定义的用户名,可以是别的;'%'是代表对任意的ip地址开放;'mypassword' 是自定义的密码。

MySQL>flush privileges;

MySQL>EXIT

法二:直接修改(我采用这个)

mysql -u root -p

GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDENTIFIED BY‘MyPassword' WITH GRANT OPTION;//和上面一样,当然这里可以把%替换为你指定的ip也可以不指定

MySQL>flush privileges;//开启权限

连接测试:

连接成功,无报错!

远程连接已开启,目前可以实现本地连接和远程连接!

注意:在进行连接数据库时请在.pro中添加:QT += core gui sql

Qt连接mysql数据库 数据库开启远程连接 实现QQ登录 注册 修改密码功能(已实现) 后续继续更新中...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。