这两天在学习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数据库的更多相关文章

  1. [转]在ubuntu linux下以编译方式安装LAMP(apache mysql php)环境

    FROM : http://www.cnblogs.com/eleganthqy/archive/2010/02/28/1675217.html 最近转向到了使用ubuntu做桌面,安装好系统以来一直 ...

  2. 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 ...

  3. Linux下指定版本编译安装LAMP

    说明: 操作系统:CentOS 6.5 64位 需求: 编译安装LAMP运行环境 各软件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2 ...

  4. Linux下apache+phppgadmin+postgresql安装配置

    Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...

  5. Linux下的Oracle 11gr2安装完成的的自启动操作。

    Linux下的Oracle在安装结束后是处于运行状态的.重启机器后,Oracle不会像在Windows下那样将Oracle添加到Windows服务,在linux下需要手动启动Orcle服务 以orac ...

  6. linux下mysql-5.5.15安装详细步骤

    linux下mysql-5.5.15安装详细步骤 注:该文档中用到的目录路径以及一些实际的值都是作为例子来用,具体的目录路径以各自安装时的环境为准 mysql运行时需要一个启动目录.一个安装目录和一个 ...

  7. Linux课程---14、linux下lamp环境如何安装

    Linux课程---14.linux下lamp环境如何安装 一.总结 一句话总结: 要按顺序安装,比如apache需要在php之前安装, 一.安装 gcc 编译器 二.卸载 rpm 安装的 http ...

  8. Linux下的网络远程安装

    Linux下的网络远程安装 1.用RHEL6.5光盘安装第一台服务器 2.在第一台服务器上配置YUM服务器 先创建一个挂载 #mount #umount /dev/cdrom #mkdir /mnt/ ...

  9. 【转】Linux下XenServer管理工具安装

    转载文章 - Linux下XenServer管理工具安装 Xen-Server 6.5 虚拟机安装Linux系统 vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化) ...

随机推荐

  1. Spring 和 filter

    标题是 spring和filter,但是这里却是说的spring MVC 项目中需要用到filter,filter中需要用到spring实例化的bean,于是为了简化就形成spring和filter了 ...

  2. 安装部署服务器和javaweb项目

    [说明]总算告一段落了,服务器啊服务器,你可是把我折磨的够呛,不过现在的状态我已经很满足了. [说明]下面的图片是我这两天一直在搞的,内容不能说是重复,只能说是不停地修改修改,出错出错. 1) 虚拟主 ...

  3. 九度OJ 1342:寻找最长合法括号序列II (DP)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:898 解决:366 题目描述: 假如给你一个由'('和')'组成的一个随机的括号序列,当然,这个括号序列肯定不能保证是左右括号匹配的,所以给 ...

  4. css3 transition效果

    <meta charset="UTF-8"> <style> .btn { display: inline-block; font-size: 12px; ...

  5. MediaRecorder实现微信、QQ、人人、易信等语音录制功能工具:MediaUtilAPI

    本文介绍使用MediaRecorder进行录制音频.录制视频学习,熟悉MediaRecorder执行流程,通过简单的Demo结合解释运行效果,最后封装MediaRecorder的API工具,实现常见比 ...

  6. 2.Django命令行工具搭建项目(django-admin.py & manage.py)

    1.概念: django-admin.py是django的用于管理任务的命令行工具 manage.py是对django-admin.py的简单包装,每个project里会有一个自己的manage.py ...

  7. [转载]Hibernate如何提升数据库查询的性能

    目录(?)[-] 数据库查询性能的提升也是涉及到开发中的各个阶段在开发中选用正确的查询方法无疑是最基础也最简单的 SQL语句的优化 使用正确的查询方法 使用正确的抓取策略 Hibernate的性能优化 ...

  8. 【深度学习】ubuntu16.04下安装opencv3.4.0

    1.首先安装一些编译工具 # 安装编译工具 sudo apt-get install build-essential # 安装依赖包 sudo apt-get install cmake git li ...

  9. linux shell 字符串操作(长度,查找,替换)

    感谢原创,文章很有帮助. 转自:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 一.判断读取字符串值 表达式 含义 ${v ...

  10. 3.16课·········C#小结

    //附加//C#源码,被C#编译器,编译成执念代码(IL)//int16=short.....±32000//int32=int.......±21亿//int64=long......±922亿亿3 ...