×

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-gtk.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í)百科

免費(fèi)咨詢獲取折扣

Loading