Linux下C++/C連線MySQL資料庫
用c++/c連線 MySQL 資料庫有兩種方法:
第一種:利用ADO連線
第二種:利用 MySQL 自己的 API 函式進行連線
第一種ADO可以連線多種資料庫,例如:mysql、sqlserver、oracle、access等。
第二種API方式只針對mysql資料庫的連線,不用安裝MyODBC伺服器程式。
這兒我用的API方式進行連線mysql資料庫,相對於ADO方式效率更高。(後面可以研究第一種方式)
虛擬機器的版本:redhat7.0 64bit
資料庫的版本:MySQL5.7(已安裝好)
1、將解壓得到的檔案裡對應的庫,標頭檔案拷貝到系統能找到的位置
例如:我當時安裝資料庫的檔案都在:/usr/local/下
執行:cp /usr/local/include/* /usr/include/
注意,拷貝時,如果*裡含有資料夾,則需要用:
cp -r/usr/local/include/* /usr/include/
(cp將遞迴複製該目錄下所有的子目錄和檔案)
隨意寫一段測試檔案:1.cpp
# include
# include
using namespace std;
int main()
{
MYSQL * connection;
connection = mysql_init(NULL);
return 0;
}
然後用 g++ -o 1 1.cpp -lmysqlcient 編譯檔案
很不幸,又是意料之中的出現了一個問題:
找不到庫檔案導致的。
終端輸入命令:mysql_config --libs
現在我們編譯時加上路徑,執行:g++ -L/usr/local/lib/mysql -lmysqlclient -o 1 1.cpp
編譯通過。
連結時預設路徑為 /usr/local/lib,多了一層目錄,我們將mysql下的檔案拷貝到lib下
執行:cp /usr/local/lib/mysql/* /usr/local/lib/
此時刪不刪lib下的mysql資料夾都無礙了。
再次執行 g++ -o 1 1.cpp -lmysqlclient 編譯通過。