首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Ubuntu Linux 下 Qt 連接 MySQL 數據庫完整配置指南

     編輯:MySQL 資料庫相關知識

在 Ubuntu 環境下使用 Qt 開發連接 MySQL 的應用,需完成 MySQL 服務端安裝、Qt MySQL 驅動部署、項目配置三大步驟。本文基於 Ubuntu 10.04 + Qt SDK 1.5G 完整包 + MySQL 5.1 實測整理。

環境準備

  • OS:Ubuntu 10.04.2 LTS
  • Qt:Qt SDK(含 Qt Creator、Qt 4.7.3、GCC 工具鏈)
  • MySQL:5.1 版本

1. 安裝 MySQL 服務端與客戶端

# 推薦:軟件中心搜索 mysql,勾選 mysql-server 和 mysql-client
# 或命令行:
sudo apt-get update
sudo apt-get install mysql-server mysql-client

安裝過程會提示設置 root 密碼,請記住。

驗證安裝與創建測試用戶

# 以 root 登錄
mysql -uroot -p
# 創建普通用戶(避免直接用 root 開發)
GRANT ALL PRIVILEGES ON *.* TO 'devuser'@'localhost' IDENTIFIED BY 'devpass';
FLUSH PRIVILEGES;
# 創建測試庫
CREATE DATABASE study DEFAULT CHARSET utf8mb4;

2. 安裝/部署 Qt MySQL 驅動

Qt 連接 MySQL 需要 libqsqlmysql.so 插件,三種獲取方式:

方式一:apt 直接安裝(最簡單)

sudo apt-get install libqt4-sql-mysql
# 將驅動複製到 Qt SDK 插件目錄
cp /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so \
   ~/QtSDK/Desktop/Qt/4.7.3/gcc/plugins/sqldrivers/

方式二:下載 deb 包手動提取

apt-get download libqt4-sql-mysql
dpkg -x libqt4-sql-mysql_*.deb /tmp/extract
cp /tmp/extract/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so \
   ~/QtSDK/Desktop/Qt/4.7.3/gcc/plugins/sqldrivers/

方式三:官方源碼編譯(不推薦,新版 SDK 缺 src 目錄)

略過。

驗證驅動加載

# 在 Qt Creator 中運行簡單測試代碼,或命令行:
LD_LIBRARY_PATH=~/QtSDK/Desktop/Qt/4.7.3/gcc/lib \
~/QtSDK/Desktop/Qt/4.7.3/gcc/plugins/sqldrivers/libqsqlmysql.so
# 無報錯即可用

3. Qt 項目配置與測試代碼

.pro 文件關鍵配置

QT += core sql
# 若無 GUI 界面
# QT -= gui

主程序測試代碼

#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("study");
    db.setUserName("devuser");
    db.setPassword("devpass");

    if (!db.open()) {
        qDebug() << "Unable to open database:" << db.lastError().text();
        return -1;
    } else {
        qDebug() << "Database connection established!";
    }

    return a.exec();
}

常見編譯/運行錯誤排查

錯誤現象原因解決
QSqlDatabase: QMYSQL driver not loaded驅動文件缺失或依賴庫缺失檢查 libqsqlmysql.so 存在;ldd libqsqlmysql.so 確認 libmysqlclient.so 可用
Cannot connect to MySQL serverMySQL 未啟動/端口/權限service mysql status;確認用戶 @localhost 權限
亂碼字符集不匹配連接後執行 SET NAMES utf8mb4 或庫表統一 utf8mb4

進階:使用 QMYSQL3(Qt5+)

Qt 5+ 推薦驅動名稱 QMYSQL 同樣有效,若編譯 Qt5 從源碼需確保 -sql-mysql 選項開啟。

核心提示:驅動文件必須放在 Qt 運行時的 plugins/sqldrivers 目錄,而非系統 Qt 目錄;開發機與部署機環境需一致。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved