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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

这两天在学习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知识,还不知道会碰到什么难题。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
114 5
Linux系统之安装OneNav个人书签管理器
|
2月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
55 5
Linux系统之安装Ward服务器监控工具
|
19天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
34 5
|
2月前
|
JSON JavaScript Linux
Linux系统之安装cook菜谱工具
【10月更文挑战第15天】Linux系统之安装cook菜谱工具
38 2
Linux系统之安装cook菜谱工具
|
2月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
151 4
Linux系统之Ubuntu安装cockpit管理工具
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
58 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
37 3
|
15天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
99 0
|
21天前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
37 0
|
2月前
|
Linux 网络安全 虚拟化
适用于Linux的Windows子系统(WSL1)的安装与使用记录
并放到启动文件夹,就可以开机自动启动了。
58 0