這兩天在吸取linux下用c++拜訪mysql,碰到一堆疑問,紀實一下。
1.mysql安裝:
公司的電腦是64位的,安裝的是64為的RHEL4,安裝如下三個包:
MySQL-client-5.1.49-1.glibc23.x86_64.rpm
MySQL-devel-5.1.49-1.glibc23.x86_64.rpm
MySQL-server-5.1.49-1.glibc23.x86_64.rpm
發動MySQL辦事時,顯露過錯:starting Mysql.manager of p-file i24小時運彩行thout updating 。
這個過錯上有許多解決計劃,我是將etcselinuxconfig文件中的部署改動為:SELINUnba運彩怎麼買X=disabled,
然后重啟體制,MySQL辦事可以發動。
2.安裝eclipse
高下載了文件:eclipse-cpp-helios-linux-gtk.tar.gz
由于這個版本的eclipse需求jdk5以上,
于是又下載了文件:jdk-6u21-linux-i586-rpm.bin
安裝jdk后,位于usrjavajdk1.6.0_21
安裝辦妥后,從頭部署etcprofile文件,在最后加上如下三行內容:
export JAVA_HOME=usrjavajdk1.6.0_21
export CLASSPATH=$JAVA_HOMEjrelibrt.jar
export PATH=$PATH$JAVA_HOMEbin
然后執行source etcprofile號召,刷新部署。
由于RHEL4本來已經帶有jdk1.4,所以需求改動一下鏈接,執行如下號召:
rm usrbin java
ln -s usrjavajdk1.6.0_21binjava usrbinjava
然后再執行號召:java -version
可以看到JDK的版本已經是1.6了。
再執行eclipse 步驟,可以寫C步驟了。
3.C步驟編譯
這一步是用時最多的。
編譯時老是顯露過錯:usrbinld cannot find -lmysqlclient
這個疑問上也是許多人在問,終極用如下號召編譯勝利了:
gcc -o test test.c -lmysqlclient -lm -Iusrincludemsqyl -Lusrlib64mysql
我之前一直將-lmysqlclient -lm兩個參數放在最后,結局老是失敗,后來改到前面,編譯通過。
4. 家里的電腦長進行MySQL安裝
由于家里的電腦是32位的,所以安裝的是32為的RHEL4,如是下載了以下三個文件:
MySQL-devel-5.1.49-1.glibc23.i386.rpm
MySQL-client-5.1.49-1.glibc23.i386.rpm
MySQL-server-5.1.49-1.glibc23.i386.rpm
安裝時,由于體制中已經有低版本的mysql-client包,先卸載
用到了rpm的參數 -ev –nodeps –allmatches,最后一個參數是刪除所有匹配的包。
由于之前的測試,體制中有兩個徹底一樣的包,只能通過這個參數刪除。
安裝完后,mysql辦事發動不了,找遍了上的解決想法,包含有改動usrselinuxconfi台灣運彩朋友圈g文件;
改動etcmy.cnf;刪除日志索引文件等,都不勝利,最后將MySQL-server-5.1.49-1.glibc23.i386卸載,
下載并安裝:MySQL-server-munity-5.1.49-1.rhel4.i386.rpm,mysql台彩賠率辦事終于可以發動了。
最后是無知其所以然。
5. 關于eclipse編譯project
由于步驟中有#include mysql.h
所以需求在eclipse中加上對mysql.h的路徑
項目-屬性-CC++Build – settings – gcc c plier – includes – include paths
增添兩個路徑:usrlibmysql;usrincludemysql
對于64位的mysql:usrlib64mysql ; usrincludemysql
要讓eclipse器具能準確實現編譯指令:
gcc 運彩 特別項目-o test test.c -lmysqlclient -lm -Iusrincludemsqyl -Lusrlib64mysql
還需求增添對 -lmysqlclient -lm兩個參數
項目-屬性-CC++Build – settings – gcc c linker- libraries
libraries(l) 中增添兩個參數mysqlclient和m
從這里可以看出gcc l參數的作用。此中m是涵蓋了數學想法 。
libraryies search path (L)中增添usrlibmysql
到這個地址去找libmysqlclient.a這個文件。
終于可以拜訪msyql數據庫了。
通過執行mysql指令:
GRANT ALL PRIVILEGES ON *.* TO ‘usr”’ ENTIFIED BY ‘mypassord’
在別的機械上登錄linux mysql ,可以測試數據庫的操縱了。
接下來吸取linux下的線程、socket、ebservice常識,還無知道會碰到什麼困難。