windows下 编写的Qt程序连接远程MySQL数据库

因开发需要,用Qt开发。需要在本地建立一个MySql数据库,在本地和在远程电脑也能访问这个Mysql数据库。

首先安装Mysql数据库,我装的是MySQL Community Server 8.0.27 版,安装的是developer Machine这个选项,最后用户名是root,密码是123456,参见链接:https://blog.csdn.net/bobo553443/article/details/81383194【超详细MySQL安装及基本使用教程】;

接着创建数据库xxxdatabase,然后在里面建一个用户表usertable(字段{id,name,password}),
往用户表里插入一个数据 insert xxxdatabase.usertable value(1,‘dh’,‘duan00’);数据库这个表如下图在这里插入图片描述

接着在本地编写qt+mysql程序连接这个数据库,参见链接:Qt连接MySQL数据库最详细的教程【https://blog.csdn.net/joey_ro/article/details/105411135,这个主要是解决QMYSQL driver not loaded】

	//参数strIp为数据库所在地址
    void connectMysqlServer(QString strIp)
    {
      QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL""connectMySQL");
      db.setHostName(strIp);//这里为数据库所在网络地址
      db.setPort(3306);
      db.setDatabaseName("数据库名");
      db.setUserName("用户名");
      db.setPassword("密码");
      bool ok = db.open();
      if (ok){
          QMessageBox::information(this, "infor", "success");
      }
      else {
          QMessageBox::information(this, "infor", "open failed");
          qDebug()<<"error open database because"<<db.lastError().text();
      }
    }

将安装的mysql的数据库,即C:/Program Files/MySQL/MySQL Server8.0/lib目录下的libmysql.lib和libmysql.dll,拷贝到放到C:/Qt/Qt5.12.1/5.12.1/mingw73_64/bin/目录里去【因为我的Qt编译时采用的Mingw 64-bit,故是放在mingw73_64/bin/里去】;如果不进行,会提示如下图片
放大错误提示在这里插入图片描述

编写完程序后,如果提示需要发布程序,用windeployqt xxx.exe 发布完你生成程序依赖的库,(此外,还需要把安装的mysql的库libmysql.dll拷贝到这个发布程序所在的目录里,
还需要把mysql-connector-c+±8.0.27-winx64.msi安装出来的c:/program files/mysql/mysql connector c++8.0/lib64这个目录里的文件除了vs14文件夹以外的东西都要拷贝到发布程序的目录里才行),如下两图
在这里插入图片描述
在这里插入图片描述

综上,就把程序的弄完了。

接着还需要在服务器端(即mysql数据库所在电脑上),给mysql数据库开通一个允许远程访问的链接。
如果没有开通这个链接的时候会提示【Failed to Connectto MySQL at xxx:xx with user root,那是因为 默认设置下, MySQL只允许localhost以root身份登录】参见链接:https://blog.csdn.net/littlehaes/article/details/104845118【Failed to Connectto MySQL at xxx:xx with user root】
1.打开mysql自带的工具MySQL 8.x Command Line Client,命令行工具:
2.在其中输入mysql -u root -p;
3.接着输入root这个用户的密码
4.再输入use mysql;
后面再依次输入如下指令
5. show tables;
6. select Host,User from user;【注意这个里面的Host ,User头字母需要大写】
7. update user set host = ‘%’ where user =‘root’;
8. flush privileges;

还要在数据库上设置开一个新链接,如下图:
在这里插入图片描述

此外,还需要在安装MySQL数据的电脑上,添加防火墙允许规则,允许3306端口,参见链接:https://www.cnblogs.com/dyha/p/13850823.html
【win10下如何让别人访问自己的数据库,开放3306端口】

这样在服务器端要做的事情就弄完了。接下来要做远程其他电脑要做的操作了。

如果程序发布到其他空白电脑,首先看看运行,是否能正常链接上本地数据库。如果不行需要安装 vs_redist.x64和mysql-connector-c++8.0.27-winx64.msi(这个依赖于前者)。
在这里插入图片描述
我的到这里,在其他电脑上也能正常访问我本地的数据库,我试验了5台电脑,都能正常访问。

最后成功的画面如下:
在这里插入图片描述

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt连接MySQL数据库,需要使用Qt数据库模块和MySQL驱动程序。下面是连接MySQL数据库的步骤: 1. 安装MySQL驱动程序:需要先下载并安装QtMySQL驱动程序。可以从Qt官网下载MySQL驱动程序或者使用第三方提供的MySQL驱动程序。 2. 引入数据库模块:在Qt项目中添加数据库模块,可以使用Qt Creator中的项目向导来实现,或者手动在项目文件中添加以下代码: ``` QT += sql ``` 3. 创建数据库连接:在应用程序中创建一个数据库连接对象,并设置连接参数,例如: ``` QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("mydb"); db.setUserName("username"); db.setPassword("password"); ``` 4. 打开数据库连接:执行以下代码来打开数据库连接: ``` if (!db.open()) { qDebug() << "Failed to connect to database."; return -1; } ``` 5. 执行SQL语句:使用QSqlQuery对象来执行SQL语句,例如: ``` QSqlQuery query; query.exec("SELECT * FROM mytable"); while (query.next()) { QString name = query.value(0).toString(); int age = query.value(1).toInt(); qDebug() << "Name:" << name << "Age:" << age; } ``` 以上就是连接MySQL数据库的基本步骤。需要注意的是,如果使用的是Qt官方提供的MySQL驱动程序,需要在Qt应用程序的运行目录中添加MySQL客户端库文件。如果使用第三方提供的MySQL驱动程序,则需要根据其文档来配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值