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知识,还不知道会碰到什么难题。
Linux下eclipse及mysql安装,c++访问mysql数据库的更多相关文章
- [转]在ubuntu linux下以编译方式安装LAMP(apache mysql php)环境
FROM : http://www.cnblogs.com/eleganthqy/archive/2010/02/28/1675217.html 最近转向到了使用ubuntu做桌面,安装好系统以来一直 ...
- Linux下源码编译安装MySQL 5.5.8
准备工作: 新建用户和用户组 groupadd mysql useradd -g mysql mysql 1:下载: bison-2.4.2.tar.bz2 cmake-2.8.3.tar.gz ma ...
- Linux下指定版本编译安装LAMP
说明: 操作系统:CentOS 6.5 64位 需求: 编译安装LAMP运行环境 各软件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2 ...
- Linux下apache+phppgadmin+postgresql安装配置
Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...
- Linux下的Oracle 11gr2安装完成的的自启动操作。
Linux下的Oracle在安装结束后是处于运行状态的.重启机器后,Oracle不会像在Windows下那样将Oracle添加到Windows服务,在linux下需要手动启动Orcle服务 以orac ...
- linux下mysql-5.5.15安装详细步骤
linux下mysql-5.5.15安装详细步骤 注:该文档中用到的目录路径以及一些实际的值都是作为例子来用,具体的目录路径以各自安装时的环境为准 mysql运行时需要一个启动目录.一个安装目录和一个 ...
- Linux课程---14、linux下lamp环境如何安装
Linux课程---14.linux下lamp环境如何安装 一.总结 一句话总结: 要按顺序安装,比如apache需要在php之前安装, 一.安装 gcc 编译器 二.卸载 rpm 安装的 http ...
- Linux下的网络远程安装
Linux下的网络远程安装 1.用RHEL6.5光盘安装第一台服务器 2.在第一台服务器上配置YUM服务器 先创建一个挂载 #mount #umount /dev/cdrom #mkdir /mnt/ ...
- 【转】Linux下XenServer管理工具安装
转载文章 - Linux下XenServer管理工具安装 Xen-Server 6.5 虚拟机安装Linux系统 vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化) ...
随机推荐
- 【python】-- GIL锁、线程锁(互斥锁)、递归锁(RLock)
GIL锁 计算机有4核,代表着同一时间,可以干4个任务.如果单核cpu的话,我启动10个线程,我看上去也是并发的,因为是执行了上下文的切换,让看上去是并发的.但是单核永远肯定时串行的,它肯定是串行的, ...
- python实例1:创建一个登陆模块
实现功能: 1.用户输入账户密码 2.验证账户是否存在于黑名单,如果存在于黑名单,则执行1,否则往下执行 3.验证用户名和密码. 3.1.如果验证成功,则打印欢迎信息并退出程序: 3.2.如果用户名存 ...
- 移动端web常见问题解决方案
meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 忽略将页面中的数字识别为电话号码 忽略Android平台中对邮箱地址的识别 当网站添加到主屏幕快速启动方式,可隐藏地址栏,仅针对i ...
- Linux shell join命令详解
Linux join命令 2012-02-09 17:49:00| 分类: SHELL | 标签:linux join 文件连接 |字号 订阅join命令 功能:“将两个文件里指定栏位同样的行连接起来 ...
- ACN经典例题1
1.韩信点兵 描述相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了.输入3个非负整数a,b,c ,表示每种 ...
- sql语句 字段的赋值
将同一个表中的一个字段2的所有值赋值给另一个字段1 UPDATE 表名 SET 字段1 = 字段2 也可以把字段所有的值赋为null UPDATE 表名 SET 字段1 = null
- java 类中定义接口的调用方法
public class Human { public interface MyAction { public void getPower(); } } public class Test{ publ ...
- [转] 携程App网络服务通道治理和性能优化@2016
App网络服务的高可靠和低延迟对于无线业务稳定发展至关重要,过去两年来我们一直在持续优化App网络服务的性能,到今年Q2结束时基本完成了App网络服务通道治理和性能优化的阶段性目标,特此撰文总结其中的 ...
- Hadoop Pig
Pig包括两部分: 用于描述数据流的语言,称为Pig Latin. 用于执行Pig Latin程序的执行环境,当前有两个环境:单JVM中的本地执行环境和Hadoop集群上的分布式执行环境. Pig内部 ...
- ARM汇编学习笔记
ARM RISC (Reduced Instruction Set Computers) X86 CISC (Complex Instruction Set Computers) ...