- Ubuntu安裝mysql
sudo apt-get install mysql-server,mysql-client,libmysqlclient-dev
安裝的時候會提示你設置數據庫的密碼
安裝結束後驗證是否成功:sudo netstat -tap | grep mysql
如果有關於mysql的字出現,就安裝成功了。
- c++連接數據庫
專用的mysql.h頭文件
#include <mysql.h>
linux下編譯的時候記得使用如下命令,注意是反引號不是引號
g++ test.cpp `mysql_config --cflags --libs` -o test
C++關於數據庫的API函數:
mysql_init //初始化MYSQL結構
mysql_real_connect//連接數據庫
mysql_real_query//查詢
mysql_store_result//操作查詢結果
mysql_fetch_row//逐行獲取上面的結果
mysql_free_result//釋放結果集
mysql_close//關閉mysql使用
具體函數使用比較簡單,就不詳述了。
出現的問題:
1.找不到mysql.h
原因:只安裝了mysql-server 和mysql-client 但要在linux下進行數據庫開發,還需要安裝devel開發包
解決辦法:sudo apt-get install libmysqlclient15-dev
安裝此軟件包
安裝完後 mysql.h出現在/usr/include/mysql目錄下
此時編譯g++ –I/usr/include/mysql –L/usr/lib/mysql –lmysqlclient –o xx xx.cpp
注:庫自帶的配置命令 `mysql_config --cflags --libs` 執行如下
xiang@xiang-mac:~$ mysql_config --cflags --libs
-I/usr/include/mysql
-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -ldl
-I(大i)表示頭文件優先搜索路徑
-L表示鏈接的庫文件優先搜索路徑
-l(小L)表示鏈接的庫文件名
如:
-I/home/hello/include表示將/home/hello/include目錄作爲第一個尋找頭文件的目錄
尋找的順序是:/home/hello/include-->/usr/include-->/usr/local/include
-L/home/hello/lib表示將/home/hello/lib目錄作爲第一個尋找庫文件的目錄
尋找的順序是:/home/hello/lib-->/lib-->/usr/lib-->/usr/local/lib
-lworld表示在上面的lib的路徑中尋找libworld.so動態庫文件(如果gcc編譯選項中加入了“-static”表示尋找libworld.a靜態庫文件)
-l(小L)參數緊接着就是庫名,那麼庫名跟真正的庫文件名有什麼關係呢?
就拿數學庫來說,他的庫名是m,他的庫文件名是libm.so
,很容易看出,把庫文件名的
頭lib和尾.so去掉就是庫名了。
好了現在我們知道怎麼得到庫名了,比如我們自已要用到一個第三方提供的庫名字叫libtest.so
,那麼我們只要把libtest.so
拷貝到/usr/lib
裏,編譯時加上-ltest
參數,我們就能用上libtest.so
庫了(當然要用libtest.so
庫裏的函數,我們還需要與libtest.so
配套的頭文件)。
關於後面的小知識點參考了該博主的內容:gcc -I -L -l描述