Linux下eclipse及mysql安裝,c++訪問mysql數據庫
分類:互聯網熱點
編輯:新網小青年
瀏覽量:36
2020-07-13 16:55:23
這兩天在學習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 pid-file without updating 。
這個錯誤網上有很多解決方案,我是將/etc/selinux/config文件中的配置修改為:SELINUX=disabled,
然后重啟系統,MySQL服務可以啟動。
2.安裝eclipse
網上下載了文件:eclipse-cpp-helios-linux-gtk.tar.gz
由于這個版本的eclipse需要jdk5以上,
于是又下載了文件:jdk-6u21-linux-i586-rpm.bin
安裝jdk后,位于/usr/java/jdk1.6.0_21
安裝完成后,重新配置/etc/profile文件,在最后加上如下三行內容:
export JAVA_HOME=/usr/java/jdk1.6.0_21
export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
然后執行source /etc/profile命令,刷新配置。
由于RHEL4原來已經帶有jdk1.4,所以需要修改一下鏈接,執行如下命令:
rm /usr/bin java
ln -s /usr/java/jdk1.6.0_21/bin/java /usr/bin/java
然后再執行命令:java -version
可以看到JDK的版本已經是1.6了。
再執行eclipse 程序,可以寫C程序了。
3.C程序編譯
這一步是用時最多的。
編譯時總是出現錯誤:/usr/bin/ld: cannot find -lmysqlclient
這個問題網上也是很多人在問,最終用如下命令編譯成功了:
gcc -o test test.c -lmysqlclient -lm -I/usr/include/msqyl -L/usr/lib64/mysql
我之前一直將-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服務啟動不了,找遍了網上的解決方法,包括修改/usr/selinux/config文件;
修改/etc/my.cnf;刪除日志索引文件等,都不成功,最后將MySQL-server-5.1.49-1.glibc23.i386卸載,
下載并安裝:MySQL-server-community-5.1.49-1.rhel4.i386.rpm,mysql服務終于可以啟動了。
最后是不知其所以然。
5. 關于eclipse編譯project
由于程序中有#include <mysql.h>
所以需要在eclipse中加上對mysql.h的路徑
項目->屬性->C/C++Build -> settings -> gcc c complier -> includes -> include paths
添加兩個路徑:/usr/lib/mysql;/usr/include/mysql
對于64位的mysql:/usr/lib64/mysql ; /usr/include/mysql
要讓eclipse工具能正確實現編譯指令:
gcc -o test test.c -lmysqlclient -lm -I/usr/include/msqyl -L/usr/lib64/mysql
還需要添加對 -lmysqlclient -lm兩個參數
項目->屬性->C/C++Build -> settings -> gcc c linker-> libraries
libraries(l) 中添加兩個參數mysqlclient和m
從這里可以看出gcc l參數的作用。其中m是包含了數學方法 。
libraryies search path (L)中添加/usr/lib/mysql
到這個地址去找libmysqlclient.a這個文件。
終于可以訪問msyql數據庫了。
通過執行mysql指令:
GRANT ALL PRIVILEGES ON *.* TO 'usr'@'%' IDENTIFIED BY 'mypassword'
在其它機器上登錄linux mysql ,可以測試數據庫的操作了。
接下來學習linux下的線程、socket、webservice知識,還不知道會碰到什么難題。
聲明:免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發
送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。本站原創內容未經允許不得轉載,或轉載時
需注明出處:新網idc知識百科