Linux下eclipse及mysql安装,c++访问mysql数据库

这两天在学习linux下用c++访问mysql,碰到一堆问题,记录一下。java

1.mysql安装:node

公司的电脑是64位的,安装的是64为的RHEL4,安装以下三个包:mysql

MySQL-client-5.1.49-1.glibc23.x86_64.rpmlinux

MySQL-devel-5.1.49-1.glibc23.x86_64.rpmios

MySQL-server-5.1.49-1.glibc23.x86_64.rpmc++

启动MySQL服务时,出现错误:starting Mysql.manager of pid-file without updating 。web

这个错误网上有不少解决方案,我是将/etc/selinux/config文件中的配置修改成:SELINUX=disabled,sql

而后重启系统,MySQL服务能够启动。数据库

 

2.安装eclipseeclipse

网上下载了文件: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知识,还不知道会碰到什么难题。

相关文章
相关标签/搜索