溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

QT 5 配置MySQL 過程記錄

發(fā)布時間:2020-07-12 19:12:59 來源:網(wǎng)絡(luò) 閱讀:671 作者:WZM3558862 欄目:數(shù)據(jù)庫

配置過程記錄一下,年紀(jì)大了記性很差……


0 安裝環(huán)境 

Win10x64+Qt5.5(x86)+VS2010(x86)


1 安裝MySQL 

注意:


以下是按x64版本安裝的,x86版本的安裝流程沒有區(qū)別。


MySQL安裝的版本應(yīng)該與Qt的版本相對應(yīng),切記!切記!


1.1 下載 

http://dev.mysql.com/downloads/mysql/


QT 5 配置MySQL 過程記錄


選擇 mysql-5.7.14-winx64.zip下載


1.2 解壓 

解壓縮文件到安裝目錄


QT 5 配置MySQL 過程記錄


注意:不要在安裝目錄中保留空格


1.3 配置 

(1)將my-default.ini重命名為my.ini


內(nèi)容修改如下:


[client]
port=3306
default-character-set=utf8
[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8[mysqld]
#設(shè)置3306端口
port = 3306 
# 設(shè)置mysql的安裝目錄
basedir=C:/MySQL/mysql-5.7.14-winx64
# 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=C:/MySQL/mysql-5.7.14-winx64/data
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
C:/MySQL/mysql-5.7.14-winx64/bin/mysqld.exe 

(2)以管理員身份運(yùn)行命令提示符cmd


(3)切換目錄 cd /dC:/MySQL/mysql-5.7.14-winx64/bin


(4)執(zhí)行安裝 mysqld --install


QT 5 配置MySQL 過程記錄


(5)初始化 mysqld --initialize --console


QT 5 配置MySQL 過程記錄


初始化成功會給root帳號設(shè)置一個臨時的密碼,一定記住這個密碼


初始化成功之后會在datadir創(chuàng)建data目錄


注意:不要提前創(chuàng)建data目錄,可能會造成安裝失敗


(7)啟動服務(wù) net start mysql


QT 5 配置MySQL 過程記錄


服務(wù)啟動成功會給出提示


沒有成功的話,用 mysqld --remove卸載之后再試一下


如果是重新安裝MySQL,先停止正常運(yùn)行的服務(wù) net stop mysql


QT 5 配置MySQL 過程記錄


再卸載mysqld --remove


QT 5 配置MySQL 過程記錄


(8)首次登錄并修改密碼 mysqladmin -u root -p password


QT 5 配置MySQL 過程記錄


(9)登錄 mysql -u root -p


QT 5 配置MySQL 過程記錄


顯示下內(nèi)建的數(shù)據(jù)庫


QT 5 配置MySQL 過程記錄


(10)設(shè)置測試用數(shù)據(jù)庫


create database bz;
use bz;
create table user(userid INT NOT NULL AUTO_INCREMENT,
-> username VARCHAR(256) NOT NULL,
-> userpassword VARCHAR(256) NOT NULL,
-> useremail VARCHAR(256) DEFAULT NULL,
-> usermobile VARCHAR(32) DEFAULT NULL,
-> PRIMARY KEY(userid));
insert into user (username, userpassword) values ("Apple","p1");
insert into user (username, userpassword) values ("Bob","p2");
insert into user (username, userpassword) values ("Cat","p3");
insert into user (username, userpassword) values ("Dog","p4"); 

查詢一下


QT 5 配置MySQL 過程記錄


數(shù)據(jù)庫準(zhǔn)備好了, 接下來配置Qt


2 配置Qt5.5 
2.0 Qt版本 

這里可以下載到各個版本的Qt http://download.qt.io/archive/qt/


注意:Qt5.5+VS的版本只有x86的,沒有x64的


(這個說起來好痛……前面的MySQL最開始全是按x64的版本安裝配置的,后來折騰了很久才在知乎上看到大神留言說有可能是x86和x64的問題,恍然?。?


2.1 測試代碼 
#include 
#include 
#include 
#include 
#include 
bool createConnection();
void queryDatabase();
void availableDrivers();
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
availableDrivers();
if (!createConnection())
return 1;
queryDatabase();
return a.exec();
}
void availableDrivers()
{
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "/t" << driver;
}
bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("bz");
db.setUserName("root");
db.setPassword("Qwert!2345");
if (!db.open())
{
qDebug() << "/r/n/r/ncreateConnection " << db.lastError().text();
return false;
}
else
{
qDebug() << "/r/n/r/ncreateConnection " << "OK";
return true;
}
}
void queryDatabase()
{
QSqlQuery query;
if (query.exec("SELECT * FROM user"))
{
qDebug() << "all users in table bz:";
while (query.next())
qDebug() << query.value("username").toString();
}

測試錯誤提示:


QT 5 配置MySQL 過程記錄


執(zhí)行createConnection()時,顯示“Driver not loaded Driver not loaded”


2.2 修改配置 

將C:/MySQL/mysql-5.7.14-win32/lib 目錄下


libmysql.dll


libmysql.lib


libmysqld.dll


libmysqld.lib


QT 5 配置MySQL 過程記錄


這四個文件復(fù)制到C:/Qt/Qt5.5.0/5.5/msvc2010/bin


QT 5 配置MySQL 過程記錄


重新運(yùn)行上面的代碼


QT 5 配置MySQL 過程記錄


運(yùn)行成功!


參考 

[1]Qt 訪問 MySQL


[2]Qt之編譯MySQL數(shù)據(jù)庫驅(qū)動(MSVC)


[3]QT5 無法加載MYSQL驅(qū)動?


[4]MySQL 教程


[5] 《C++ GUI Qt4 編程》(第二


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI