zoukankan      html  css  js  c++  java
  • 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知识,还不知道会碰到什么难题。


  • 相关阅读:
    asp.net发布和更新网站
    细说 Form (表单)
    python之面向对象进阶3
    python之面向对象进阶2
    python之面向对象进阶
    python之面向对象
    python之模块与包
    python之常用模块(续)
    python 之常用模块
    迭代器和生成器函数
  • 原文地址:https://www.cnblogs.com/baishahe/p/1794508.html
Copyright © 2011-2022 走看看