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