1. 程式人生 > >Mysql++學習(一)------mysql編譯安裝

Mysql++學習(一)------mysql編譯安裝

最近在看資料庫開發的東西,因為用C++,所以就看看mysql++咯。

mysql提供了c語言的API,還有一些其他語言的connector,雖然以前也寫過c語言的mysql連線,增刪改查之類的東西,不過都感覺太玩具,最近看新專案,裡面的資料庫封裝就是基於mysql++的,所以順便學學。

mysql++是對於mysql c API的一個封裝,為C++開發者提供像操作STL容器一樣方便的操作資料庫的一套機制,簡單說,就是支援C++的那些“高大上”的機制了唄。所以在C++ 裡面用起來會方便不少。心動不如行動,裝個試試。

用mysql++開發的第一步,當然是你得有個資料庫程式吧,怎麼安裝mysql這裡就不多說了。

然後,去Mysql++官網下個庫原始碼,最新版是3.2.1.然後解壓

tar -xvzf mysql++-3.2.1.tar.gz

進入解壓後的目錄,一大堆檔案,慣例------先看README,因為我的是ubuntu,所以就看README-Linux.txt

首先它告訴你,mysql++必須得有mysql c API才能正常工作,mysql c API就需要安裝mysqlclient.

ubuntu下面執行下面命令就可以

sudo apt-get install libmysqlclient-dev

 其次它告訴你,為了防止動態連結器找不見,最好不要裝在非主流的目錄下,它建議你放/usr下面

./configure --prefix=/usr

執行建議的命令,它就開始檢測檔案,配置了。

然後。。。就華麗麗的報錯了。- -!

它表示沒找見mysqlclient。locate一下,確定是否安裝

裝了也找不見,那隻能告訴它放哪了

./configure --prefix=/usr --with-mysql-lib=/usr/lib/x86_64-linux-gnu

注意:要使用多執行緒,上面配置別忘了--enable-thread-check(居然預設不支援,坑。。。)

果然好了。然後make。make install(如果許可權不夠,就sudo make install)。搞定,安裝成功!

去example下找個例子測試下唄~

測試首先得有個資料庫,執行安裝目錄下的

./resetdb -s 127.0.0.1 -u [user]-p [password]

就行,如果你安裝在非主流目錄下,那就通過一個指令碼執行

./exrun ./resetdb -s 127.0.0.1 -u [user]-p [password]

如果提示沒許可權或者使用者不存在,那就去資料庫裡面加使用者,給許可權(使用者最好是你的登入使用者,密碼最好為空)

mysql -uroot -p[password]

root登入mysql,新增新使用者comoon,密碼為空

insert into mysql.user (Host,User, Password) values("%", "comoon", "");

給許可權(測試資料庫是mysql_cpp_data)

grant all privileges on mysql_cpp_data.* to [email protected] identified by '';

重新整理許可權

flush privileges;

再次執行生成測試資料庫的指令碼,就OK了

 

進入example目錄,編譯simple1,發現標頭檔案沒找到

 

locate下,發現在這裡

 

加上Include路徑再試,發現又一個沒找到。再加。

 

g++ -o test simple1.cpp -I /usr/include/mysql++/ -I /usr/include/mysql -lmysqlpp

終於搞定。

執行程式,執行成功。列印查詢結果.

 

更多可以檢視mysql++ user manual. 地址:http://tangentsoft.net/mysql++/doc/html/userman/

友情提示:如果你固執的選擇安裝到一個非主流目錄下,你的動態連結器可能找不到共享庫檔案,你需要將你安裝目錄下的libmysqlpp.so.3.2.1和連線libmysqlpp.so.3拷貝到/usr/local/lib或者/usr/lib下面,然後執行sudo ldconfig.這樣連結器就可以找到了。