QT5.5與MYSQL5.6數據庫連接的具體方法與實現和安裝時write configuration file無法通過及無法加載MySQL驅動

目錄

    1、QT5.5下載

    2、MYSQL5.6下載

    3、MYSQL5.6安裝

    4、MYSQL登陸與修改密碼

     5、建立QT程序

     注意:如果運行Qt時提示"Driver not loaded Driver not loaded"


由於最近工作需要用到QT讀取數據庫中的數據,並將數據保存至數據庫中。花了一天的時間,總算實現了從QT中讀取數據庫中的數據。網上相關資料很多,但是寫得不是很全,中間出現了一些問題,解決起來比較麻煩。所以本文從MYSQL下載、安裝,QT連接MYSQL儘可能寫詳細,若有不足,還請見諒。本例爲32位Qt和32位MySQL

    1、QT5.5下載

        本文使用的 windows32 QT5.5 版本爲(qt-opensource-windows-x86-mingw492-5.5.10),可從百度雲:https://pan.baidu.com/s/1XsVmgd3Qd-J0BHPVOtMVkA下載

        若選用高版本,具體安裝方法可自行百度。

    2、MYSQL5.6下載

        由於QT選用的Windows32位,所以MYSQL也應選擇Windows32位版本爲mysql-5.6.39-win32.zip。(若QT選擇的爲Windows64位,則MYSQL應選擇Windows64位),

        可從百度雲:https://pan.baidu.com/s/1XsVmgd3Qd-J0BHPVOtMVkA下載。

        若選用高版本,具體下載方法可自行百度。

   3、MYSQL5.6安裝

        1)將mysql-5.6.39-win32.zip解壓至D盤中的MYSQL SERVER,且重命名爲mysql-5.6。解壓修改後的結果如圖1-1所示。

                                                  

                                                                                   圖1-1

    2)修改my-default.ini,修改後如圖1-2所示

                                   

                                                           圖1-2

3)增加環境變量。右鍵我的電腦,點屬性,點高級系統設置,點環境變量,在PATH中添加 ;D:\MYSQL SERVER\mysql-5.6\bin(分號不要忘了,根據自己的安裝目錄改寫),點擊確認就行。

4)在C盤中找到cmd.exe,並以管理員權限打開。分別執行以下指令:

   d:

   cd  MYSQL SERVER\mysql-5.6\bin 

  mysqld -initalize -user=mysql -console

  mysqld -install,輸入該指令後會打印 Service successfully installed

  net start mysql,輸入該指令後會打印MySQL服務已經啓動成功。至此MYSQL5.6已經安裝成功,並且已運行。

 4、MYSQL登陸與修改密碼

  1)在cmd.exe軟件中,繼續輸入SQL相關指令:

   mysql -u root -p,輸入該指令後出現 Enter password:  ,第一次登陸直接回車,進入mysql軟件。如圖1-3

       

                                   圖1-3

 2)增加root的密碼。

    mysql> set password for root@localhost=password('88888888');

    輸入該指令後ront 的密碼變爲88888888。(在編寫QT程序中需要用到用戶名爲root和密碼爲88888888)

    mysql>exit

    輸入該指令後退出。

   重新登陸,輸入 mysql -u root -p,輸入該指令後出現 Enter password: ,輸入88888888。若輸入密碼不是88888888,則會出現報錯,如圖1-4所示

                   

                                                         圖1-4

 3)添加測試表,在test庫中添加student表,並添加一些數據。具體操作如圖1-5所示,至此MYSQL部分已經全部完成。(注意是在test庫中添加,對應QT應選擇test;

                                             圖1-5

5、建立QT程序

1)將mysql-5.6文件lib目錄下的libmysql.dll和libmysqld.dll複製到Qt5.5中的mingw493_32的bin文件下。如圖1-6所示;

                                                             圖1-6

2)新建項目,選擇QT Console Application。命名項目名爲sql_test;

在sql_test.pro文件中添加 QT +=sql

main.cpp改爲

#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QtDebug>
void connect_mysql()
{
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
       db.setHostName("127.0.0.1");      //連接數據庫主機名,這裏需要注意(若填的爲”127.0.0.1“,出現不能連接,則改爲localhost)
       db.setPort(3306);                 //連接數據庫端口號,與設置一致
        db.setDatabaseName("test");      //連接數據庫名,與設置一致
        db.setUserName("root");          //數據庫用戶名,與設置一致
        db.setPassword("88888888");    //數據庫密碼,與設置一致
        db.open();
        if(!db.open())
        {
            qDebug()<<"不能連接"<<"connect to mysql error"<<db.lastError().text();
            return ;
        }
        else
        {
             qDebug()<<"連接成功"<<"connect to mysql OK";
        }
        QSqlQuery query(db);
        query.exec("select * from student");
        while(query.next()){
            qDebug()<<query.value("name").toString();
        }
}
int main(int argc,char *argv[])
{
    QCoreApplication a(argc,argv);
    connect_mysql();
    return a.exec();
}

3)測試結果

 

                         圖1-7

   結果表明,QT已經成功讀取MYSQL中的student表。

轉載鏈接爲:https://www.cnblogs.com/xtu-wlf1212/p/8764015.html

修改密碼

在 Navicat for MySQL 下面直接執行  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 就可以

方法1: 用SET PASSWORD命令  

mysql -u root

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin  

mysqladmin -u root password "newpass"

  如果root已經設置過密碼,採用如下方法

  mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接編輯user表  

mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;

在丟失root密碼的時候,可以這樣 

 mysqld_safe --skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;

安裝mysql後執行配置,write configuration file時無法通過,報錯:

Configuration file tmeplate

%mysql安裝目錄%\my-template.ini could not be processed and written to

%mysql安裝目錄%\my.ini.Error code-1.

原因是沒權限!!! 但是單純的在屬性-安全中增加管理員對兩個ini文件的寫入權限無法解決。

解決方法:win 7 或 server2008 下,找到mysql安裝目錄下的bin\MySQLInstanceConfig.exe,右鍵-屬性-兼容性 設置兼容 "系統的版本",並勾選  以管理員身份運行  解決!!!

注意:如果運行Qt時提示"Driver not loaded Driver not loaded"

方法一:

下載一個32位的 libmysql.dll和libmysql.lib 放入Qt安裝盤:\Qt\Qt5.5.1\5.5\mingw492_32\bin 中成功解決。

鏈接: https://pan.baidu.com/s/1T3k6rX4KJnfIFxU53KRSJw 提取碼: 8159 

方法二:

在windows下開發QT連接數據庫時遇到這個問題,之前解決過一次但是換了臺機子又忘記了,這次碼下來。

下載mysql的支持包

地址:https://dev.mysql.com/downloads/connector/c/

記得QT是多少位的,就下載多少位的。

下載過來安裝完成後,在C盤的Program Files (x86) 如果是64位的就是Program Files 文件夾中會多出一個mysql的文件,進入到lib裏,將libmysql.dll 和libmysql.lib 複製到QT的bin裏,然後重啓編輯器就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章