44.QT-安裝MySQL、測試連接MySQL


在上章學習了42.QT-操作SQLite數據庫后,發現MySQL和SQLite的語句都大致相同,所以本章只測試MySQL是否能使用

MySQL安裝參考鏈接:https://blog.csdn.net/qq_38455201/article/details/83419450

 

1.由於QT版本是32位,所以MySQL安裝也得是32

 

 

2.MySQL安裝

下載地址https://dev.mysql.com/downloads/mysql/5.7.html#downloads,選擇32位的:

 

下載完成后解壓到: D:\MySQL5.7_win32

然后配置Path環境變量

新增變量名:

 

然后在Path變量里添加路徑:

 

  • %MYSQL_HOME%:表示變量名,等價於D:\MySQL5.7_win32\mysql-5.7.26-win32

 

配置文件

首先在D:\MySQL5.7_win32\mysql-5.7.26-win32里創建data文件夾,用來mySQL存儲數據.

然后在D:\MySQL5.7_win32\mysql-5.7.26-win32里創建my.ini文件(在linux下則為my.cnf):

[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8

# 數據庫服務端配置項
[mysqld]

# 設置3306端口
port = 3306

# 設置MYSQL的安裝目錄
basedir= D:\\MySQL5.7_win32\\mysql-5.7.26-win32

# 設置MYSQL數據庫的數據的存放目錄
datadir=D:\\MySQL5.7_win32\\mysql-5.7.26-win32\\data

# 允許最大連接數
max_connections=200

# 服務端使用的字符集設置為utf8
character-set-server=utf8

# 創建新表時將使用的默認存儲引擎
# default-storage-engine=INNODB

#設置模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

# skip-grant-tables跳過密碼驗證,一般忘記密碼,才是用它,重新改密碼
#skip-grant-tables

[WindowsMySQLServer]
Server= D:\\MySQL5.7_win32\\mysql-5.7.26-win32\\bin\\mysqld.exe

安裝MySQL服務以及初始化

打開CMD輸入:

mysqld install             //安裝SQL后台服務程序(mysqld),mysqld用來實現讓客戶端通過連接服務器來訪問數據庫
mysqld --initlialize      //初始化mysqld
net start mysql           //啟動MySQL

 

更改密碼

首先找到初始密碼,密碼位於data文件夾*.err文件里:

 

打開,找到密碼為N0aeT3lp.tzy:

 

繼續在CMD中輸入:

mysql -u root –p            //-u表示輸入用戶名,-p表示輸入密碼,按下回車后則會要求輸入密碼N0aeT3lp.tzy

alter user root@localhost identified by '123456';   //改為123456

 

修改密碼也可以輸入:

set password for root@localhost = password('123');          //修改密碼為123

 

 

使用navicat管理數據庫工具連接數據庫

使用navicat工具可以方便操作數據庫,下載后,我們通過ip地址訪問時,發現打印如下所示:

 

打開CMD配置

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123';     //修改,允許所有IP地址,通過root和123賬號密碼來訪問
flush privileges;           //使修改立即生效

如下圖所示:

 

然后再次通過ip地址訪問,發現OK:

 

 

3.接下來開始使用QT測試(使用QT5.7版本)

連接MySQL發現打印:

 

因為缺少驅動文件libmysql.dll,該文件位於: D:\MySQL5.7_win32\mysql-5.7.26-win32\lib

方法1:

將libmysql.dll復制到Qt5.7.1\5.7\mingw53_32\bin目錄下

方法2:

將libmysql.dll復制到debug或者release下

 

開始測試

 
        

 

1)首先創建一個students數據庫:

 

2)寫QT代碼

QSqlDatabase  db =  QSqlDatabase::addDatabase("QMYSQL");

db.setHostName("192.168.0.100");      //如果填入localhost,則表示鏈接本地的數據庫
db.setDatabaseName("students");       //要連接的數據庫名
db.setUserName("root");              
db.setPassword("sql");
db.setPort(3306);

if(db.open())
{
QSqlQuery query; query.exec(
"DROP TABLE students"); //刪除名為students的表 query.exec("CREATE TABLE students(" "id INT NOT NULL AUTO_INCREMENT," "name VARCHAR(20) NOT NULL," "sroce INT NOT NULL," "class VARCHAR(20) NOT NULL," "PRIMARY KEY (id) )ENGINE=InnoDB DEFAULT CHARSET=utf8;"); //重新創建一個students表,標題分別為id、name、score、class query.exec("INSERT INTO students(name,sroce,class) VALUES ('小a', 85, '初2-1班')"); query.exec("INSERT INTO students(name,sroce,class) VALUES ('小b', 15, '初2-2班')"); query.exec("INSERT INTO students(name,sroce,class) VALUES ('小c', 35, '初2-3班')"); }

運行結束后,打印數據表是否有數據:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM