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 comoon@localhost 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.這樣鏈接器就可以找到了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM