您好,登錄后才能下訂單哦!
配置過程記錄一下,年紀大了記性很差……
0 安裝環境
Win10x64+Qt5.5(x86)+VS2010(x86)
1 安裝MySQL
注意:
以下是按x64版本安裝的,x86版本的安裝流程沒有區別。
MySQL安裝的版本應該與Qt的版本相對應,切記!切記!
1.1 下載
http://dev.mysql.com/downloads/mysql/
選擇 mysql-5.7.14-winx64.zip下載
1.2 解壓
解壓縮文件到安裝目錄
注意:不要在安裝目錄中保留空格
1.3 配置
(1)將my-default.ini重命名為my.ini
內容修改如下:
[client]
port=3306
default-character-set=utf8
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8[mysqld]
#設置3306端口
port = 3306
# 設置mysql的安裝目錄
basedir=C:/MySQL/mysql-5.7.14-winx64
# 設置mysql數據庫的數據的存放目錄
datadir=C:/MySQL/mysql-5.7.14-winx64/data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
C:/MySQL/mysql-5.7.14-winx64/bin/mysqld.exe
(2)以管理員身份運行命令提示符cmd
(3)切換目錄 cd /dC:/MySQL/mysql-5.7.14-winx64/bin
(4)執行安裝 mysqld --install
(5)初始化 mysqld --initialize --console
初始化成功會給root帳號設置一個臨時的密碼,一定記住這個密碼
初始化成功之后會在datadir創建data目錄
注意:不要提前創建data目錄,可能會造成安裝失敗
(7)啟動服務 net start mysql
服務啟動成功會給出提示
沒有成功的話,用 mysqld --remove卸載之后再試一下
如果是重新安裝MySQL,先停止正常運行的服務 net stop mysql
再卸載mysqld --remove
(8)首次登錄并修改密碼 mysqladmin -u root -p password
(9)登錄 mysql -u root -p
顯示下內建的數據庫
(10)設置測試用數據庫
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
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();
}
}
測試錯誤提示:
執行createConnection()時,顯示“Driver not loaded Driver not loaded”
將C:/MySQL/mysql-5.7.14-win32/lib 目錄下
libmysql.dll
libmysql.lib
libmysqld.dll
libmysqld.lib
這四個文件復制到C:/Qt/Qt5.5.0/5.5/msvc2010/bin
重新運行上面的代碼
運行成功!
[1]Qt 訪問 MySQL
[2]Qt之編譯MySQL數據庫驅動(MSVC)
[3]QT5 無法加載MYSQL驅動?
[4]MySQL 教程
[5] 《C++ GUI Qt4 編程》(第二
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。