Ubuntu下實現mysql 與 qt 的連接:
1 安裝mysql:
檢查是否安裝mysql:netstat -tap |grep mysql
這張圖是安裝了的
現在的軟件越來越好安裝,尤其是在ubuntu下安裝軟件,更是沒有技巧,只需要在聯網的情況下使用apt-get inatll 即可。在決定安裝mysql之前,要先確定系統是否已經安裝mysql。如下圖:
由此可以看出系統中並沒有安裝mysql.下面執行sudo apt-get install mysql-server my-client進行安裝。下圖:
輸入Y進入到安裝界面,在安裝過程中,會彈出一個界面要求輸入mysql的root的密碼,這裏一定輸入,省得安裝後再設密碼了。如下圖
然後會要求確認,再輸一遍,然後系統會自動安裝mysql直到完成。
mysql安裝完成後,我們可以通過netstat -tap|grep mysql來查看系統是否已經有了mysql服務,如下圖,
出現上面的信息,說明我們安裝mysql成功。
下面進行簡單的配置
安裝完成後通過修改/etc/mysql/my.cnf(此文件爲mysql的配置文件)。將文件中的binding-address=127.0.0.1註釋掉。其它配置根據需要更改。
登錄數據庫命令:mysql -u root -p 回車後,輸入我們前面所設的密碼,就可以登錄成功。如圖
如果要查看數據庫使用的字符集,可以輸入show variables like 'character%';(注意分號不可省略)如圖
如果要更改這些,在my.cnf裏更改即可。
至此安裝mysql成功。
介紹mysql的幾個常用命令
一、庫操作
1、、創建數據庫
命令:create database <數據庫名>
例如:建立一個名爲test的數據庫
mysql> create database test;
2、顯示所有的數據庫
命令:show databases
mysql> show databases;
3、刪除數據庫
命令:drop database <數據庫名>
例如:刪除名爲 test的數據庫
mysql> drop database test;
4、連接數據庫
命令: use <數據庫名>
例如:如果test數據庫存在,嘗試存取它:
mysql> use test;
屏幕提示:Database changed
5、查看當前使用的數據庫
mysql> select database();
6、當前數據庫包含的表信息:
mysql> show tables;
mysql的退出命令爲quit或者是exit。剛纔退出的時候,我輸入exit還要我再加個;,真他媽賤。
其它的沒有時間再寫了。就寫到這兒算完,所有的東西都要自己經過手後才能知道是怎麼回事,沒有事多嘗試。
本文出自 “cycnet” 博客,請務必保留此出處http://cycnet.blog.51cto.com/117809/812625
2 寫好qt代碼 進行連接;
遇到問題:不能找到mysql的驅動 driver:
解決:
環境說明:
ubuntu 10.04.2
QtSDK (1.5G安裝包的那個)
mysql5.1
1.安裝MySQL
Linux下完整的MySQL開發需要安裝服務器端,如果安裝客戶端也沒什麼不好。直接在軟件中心搜mysql,把client和server選上。
server在安裝時會提示爲root用戶設置密碼,設一個好了。
我使用的是mysql5.1版本,用戶名密碼存儲在一個叫mysql的數據庫裏,只有管理員級別才能看到。
如果直接在終端中輸入 mysql,可能會提示ERROR 1045 (28000),這是因爲這時候你是以自己用戶名訪問數據庫,而目前數據庫中只有一個root用戶。沒關係,如果有必要,可以添加一個用戶進去:
mysql -uroot -p -->以root用戶登錄
grant usage on *.* to dummy@localhost; -->授權名爲dummy的用戶本地登錄,這裏換成自己的用戶名就可以了
不過這時候直接mysql只有普通的權限,創建數據庫、操作mysql都是不可以的,如果真有將其賦予管理員權限的需要,可以自己查閱有關資料。
2.安裝Qt的MySQL驅動。
方法一:直接sudo apt-get install libqt4-sql-mysql ,這是Qt4的mysql驅動,就不用自己費勁編譯了,不過可能會額外下載一些東西。
將 /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷貝到你的QtSDK sqldrivers目錄下,我當時是直接用普通權限安裝,目錄爲:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers
直接find / -name libsqlmysql.so 便可找到其所在路徑
方法二:其實你也可以sudo apt-get download libqt4-sql-mysql,把包解壓縮,然後把裏面的so文件搜出來直接拷貝到那裏。
方法三:乖乖按照官方方法編譯,但是貌似可行性不大,因爲新版本的QtSDK並沒有src目錄,默認也沒有mysql的驅動。
3.做個demo試一下
記得在pro文件中 QT +=那裏加上sql,否則qmake是不會去找sql的相關部分的
#include <QtCore/QCoreApplication> #include <QSqlDatabase> #include <QDebug> intmain(intargc,char*argv[]) { QCoreApplication a(argc, argv); QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("study"); db.setUserName("root"); db.setPassword("tyh"); if(!db.open()){ qDebug()<<"Unable to open database"; }else{ qDebug()<<"Database connection established"; } returna.exec(); }
|
這裏study這個數據庫之前我已經創建過了,如果連接成功,就會顯示Database connection established。 我是建立的控制檯程序哈。
3 還是顯示不了要打開的數據庫 顯示 build error!
解決:
可能進行更新:
要更新gdb: sudo apt-get upgrade [-u] gdb
確定mysql已啓動:
Service mysql status
Qt的工程目錄:/opt/esp4/ 執行run後會自動生成一個 exp4 名的可執行文件;如圖: