Qt6 for Mac m1、m2、m3远程连接Mysql

使用场景:

提示:适用远程连接数据库:

Mac上没有安装数据库,需要Qt6远程连接mysql;
本教程针对arm64,即m系列芯片;
Cmake;


问题描述

目前存在mac资源很少,存在少数的教程,也是存在些许问题;在此经过多次实践,最终记录一下;


解决方案:

提示:没有远程数据库的,使用本地安装的数据库就按部就班走,下面的代码注意修改路径即可;

提示:使用远程数据库,不安装mysql:

第一步

安装mysql-client,使用brew

brew install mysql-client

第二步

找到mysql-client安装位置:
/opt/homebrew/Cellar/mysql-client,基本上都会在这个目录下面;
找到这两个路径,后面会用到且关键:

/opt/homebrew/Cellar/mysql-client/8.3.0/include/mysql
/opt/homebrew/Cellar/mysql-client/8.3.0/lib/libmysqlclient.dylib

基本上都是下载到这个目录

第三步

打开terminal

cd /Users/username/Qt/6.7.1/Src
./configure -sql-mysql -- -DCMAKE_INCLUDE_PATH="/opt/homebrew/Cellar/mysql-client/8.3.0/include/mysql" -DCMAKE_LIBRARY_PATH="/opt/homebrew/Cellar/mysql-client/8.3.0/lib"

第二行命令的时候会提示错误,可以不用关注;直接next!

cd /Users/username/Qt/6.7.1/macos/plugins/sqldrivers
mkdir build_sqldrivers
cd build_sqldrivers
/Users/username/Qt/6.7.1/macos/bin/qt-cmake -G Ninja /Users/username/Qt/6.7.1/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/username/Qt/6.7.1/macos -DMySQL_INCLUDE_DIR="/opt/homebrew/Cellar/mysql-client/8.3.0/include/mysql" -DMySQL_LIBRARY="/opt/homebrew/Cellar/mysql-client/8.3.0/lib/libmysqlclient.dylib" -DCMAKE_OSX_ARCHITECTURES="arm64"

在这里插入图片描述
继续执行以下命令:

 sed -i -e 's/-arch x86_64/-arch arm64/g' /Users/username/Qt/6.7.1/macos/plugins/sqldrivers/build_sqldrivers/build.ninja
cmake --build .
cmake --install .

最后一步

找到刚才生成的文件libqsqlmysql.dylib:

find ~/Qt -name libqsqlmysql.dylib

在这里插入图片描述
如果/Users/username/Qt/6.4.2/macos/plugins/sqldrivers不存在这个文件,复制件过去;

测试

在CmakeLists.txt添加:

find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets Sql REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Sql)
target_link_libraries(testIni PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Sql)

在这里插入图片描述

#include "mainwindow.h"

#include <QApplication>
#include <QSqlDatabase>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    qDebug()<<"available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug()<<driver;
    MainWindow w;
    w.show();
    return a.exec();
}

如果修改完毕之后仍然没有加载到Qmysql,重启一下Qt Creator;或者更换一下系统的cmake尝试;

  • 15
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt for Android中连接MySQL数据库,可以通过以下步骤来实现: 1. 首先,确保你已经在Android设备上安装了MySQL数据库,并且可以通过网络访问。 2. 在Qt项目中,添加MySQL插件。在.pro文件中添加以下行: ``` QT += sql ``` 3. 在代码中,使用以下代码片段来连接MySQL数据库: ```cpp #include <QtSql> QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("your_mysql_server_host"); db.setPort(your_mysql_server_port); db.setDatabaseName("your_database_name"); db.setUserName("your_username"); db.setPassword("your_password"); if (db.open()) { // 连接成功 } else { // 连接失败 QString error = db.lastError().text(); } ``` 请将上述代码中的"your_mysql_server_host"、"your_mysql_server_port"、"your_database_name"、"your_username"和"your_password"替换为实际的MySQL服务器主机名、端口号、数据库名称、用户名和密码。 4. 通过执行SQL查询语句来与数据库进行交互。例如,可以使用以下代码来执行一个查询: ```cpp QSqlQuery query; query.exec("SELECT * FROM your_table_name"); while (query.next()) { // 处理查询结果 QString column1 = query.value(0).toString(); QString column2 = query.value(1).toString(); // ... } ``` 请将上述代码中的"your_table_name"替换为实际的表名,根据需要修改查询语句。 这样,你就可以在Qt for Android中连接MySQL数据库了。请注意,为了使连接正常工作,你的Android设备需要具有与MySQL数据库服务器的网络连接,并且需要正确配置防火墙和访问权限。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值