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

在上章學習了42.QT-操做SQLite數據庫後,發現MySQL和SQLite的語句都大體相同,因此本章只測試MySQL是否能使用html

MySQL安裝參考連接:http://www.javashuo.com/article/p-rblxsphr-gk.htmlmysql

 

1.因爲QT版本是32位,因此MySQL安裝也得是32linux

 

 

2.MySQL安裝sql

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

 

下載完成後解壓到: D:\MySQL5.7_win32服務器

而後配置Path環境變量ide

新增變量名:工具

 

而後在Path變量裏添加路徑:post

 

  • %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 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;      //修改,容許全部訪問
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())
{
    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班')");  
}

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

 

相關文章
相關標籤/搜索