Linux下eclipse及mysql安装,c++访问mysql数据库
这两天在学习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知识,还不知道会碰到什么难题。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
标准模板库(STL)学习指南之set集合
set是关联容器。其键值就是实值,实值就是键值,不可以有重复,所以我们不能通过set的迭代器来改变set的元素的值,set拥有和list相同的特性:当对他进行插入和删除操作的时候,操作之前的迭代器依然有效。当然删除了的那个就没效了。set的底层结构是RB-tree,所以是有序的。 stl中特别提供了一种针对set的操作的算法:交集set_intersection,并集set_union,差集set_difference。对称差集set_symeetric_difference,这些算法稍后会讲到。 一:set模板类的声明。 template < class key class =Traitsless<key> class Allocator=allocator<key> > class set。 其中个参数的意义如下: key:要放入set里的数据类型,可以是任何类型的数据。 Traits:这是一个仿函数(关于仿函数是什么,我后面的文章会讲到)。提供了具有比较功能的仿函数,来觉得元素在set里的排列的顺序,这是一个可选的参数,默认的是...
- 下一篇
Lisp的本质(The Nature of Lisp)
Lisp的本质(The Nature of Lisp) 作者 Slava Akhmechet 译者 Alec Jang 出处: http://www.defmacro.org/ramblings/lisp.html简介最初在web的某些角落偶然看到有人赞美Lisp时, 我那时已经是一个颇有经验的程序员。在我的履历上, 掌握的语言范围相当广泛, 象C++, Java, C#主流语言等等都不在话下,我觉得我差不多知道所有的有关编程语言的事情。对待编程语言的问题上, 我觉得自己不太会遇到什么大问题。其实我大错特错了。我试着学了一下Lisp, 结果马上就撞了墙。我被那些范例代码吓坏了。我想很多初次接触Lisp语言的人, 一定也有过类似的感受。Lisp的语法太次了。一个语言的发明人, 居然不肯用心弄出一套漂亮的语法, 那谁还会愿意学它。反正, 我是确确实实被那些难看的无数的括号搞蒙了。回过神来之后, 我和Lisp社区的那伙人交谈, 诉说我的沮丧心情。结果, 立马就有一大套理论砸过来, 这套理论在Lisp社区处处可见, 几成惯例。比如说: Lisp的括号只是表面现象; Lisp的代码和数据的表达方...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度