当前位置:首页 » 操作系统 » c连接mysqllinux

c连接mysqllinux

发布时间: 2022-04-18 09:24:45

linuxc语言连接Mysql

老大,原来你连 C 的原理都不会啊?

C 语言所有调用函数,都要有声明,这种外部函数库的调用,都要用他们的 header 文件来声明函数变量等等的东西,编译器会根据实际情况去把这些程序里面的函数调用链接到函数库的正确位置上。

微软的产品因为他垄断了他自己系统的所有功能设计。所以他的系统+他的开发程序+他的开发函数库就不需要 header 文件了,因为它可以设计为 dll 本身含有足够的信息去干别的事情了。所以,你别以为你用了微软的 .net ,他就还是 C 语言了。他已经脱离了 C 语言的范围了。

GCC一般情况下是编译器,但编译器是不够的,还需要连接器的工作才行。binutils 里面的软件提供相关的功能。

要知道以前链接到函数库功能,光有 header 和函数库文件本体还是不行的,还需要另外的函数库信息文件来帮助编译器连接器来找到正确的函数入口位置才行的。

编程 C ,你要选择你所使用的功能调用方法,GCC 一般调用 mysql 有调用外部 dll ,或者程序自己直接链接 mysql 端口,自己分析 mysql 服务进程发送的各种信息!

前一种办法,可以直接选择 mysql 客户端里面的 SDK 来直接获得官方的功能支持,但官方 MySQL 是 GPL 协议发布的,你使用他的功能接口后,你的程序也必须以 GPL 发布,不然你就要去选择其他的函数库,比如 ODBC 的 mysql 库。当然还有第三方的 mysql 功能库可以选择。
不过你要注意,LGPL 必须严格区分你的程序和 LGPL 代码。你必须动态链接到 LGPL 函数库。如果你的程序包含 LGPL 函数库一起发布,且 LGPL 库是你的软件的必备函数库,那么你的程序也必须开源,但不是 GPL 而是 LGPL !

不然你就选择自己写程序直接与 mysql 服务器进行数据传输,不使用第三方功能库。

但我不认为身为一个 Linux 下程序开发人员,会去傻傻的自己写功能函数而不是用现成的函数库。

你所遇到的“非要客户安装 mysql client ”,就是因为你的软件调用了一些非你自己编写的函数调用功能,而为了获取这些函数而需要安装几个 mysql 函数库的问题。

这个问题我想不应该是一个开发人员提出来的吧?
------------------------------------

楼主你还是重新学习 C 语言吧。.net 的 C 被微软改的不是真正的 C 语言了,所以你没办法按照 C 的标准去比较 .net 和 GCC 的。
而且很多 .net 的编程习惯也没办法延续到 GCC 的。

㈡ Linux下C连接MySQL数据库

skipping incompatible /usr/lib/mysql/libmysqlclient_r.a 这里是说这个库文件与当前系统的编译器gcc不一致,你需要确认一下是不是机器位数的问题

gcc -m32 -o test test.c `mysql_config --cflags --libs` 这样试试

㈢ c语言怎么连接mysql数据库

如鹏网上有详细的视频教程,杨中科的C语言也能干大事,里面讲得很清楚。要是在这里讲需要写很多东西,累手,还没有视频直观

㈣ linux系统下c语言连接mysql数据库时有关mysql_error这个函数的返回值的问题,求知情人士

应该这样用,连接的时候不要指定数据库,分步操作和检测
if(!mysql_real_connect(character_ptr,"localhost","root","24157518",
NULL
,0,NULL,0))
printf("Error
connecting
to
server:
%s\n",
mysql_error(character_ptr));
if(!mysql_select_db(character_ptr,
"test_database"))
printf("Error
connecting
to
database:
%s\n",
mysql_error(character_ptr));

㈤ linux下用c语言操作mysql数据库。

不好意思,没看见标题,我写的是
脚本语言
我把你说的buff当成一个文件了
ID=`sed
-n
'1p'
buff
|
awk
'{printf
$1}'`
NAME=`sed
-n
'1p'
buff
|
awk
'{printf
$2}'`
SCORE=`sed
-n
'1p'
buff
|
awk
'{printf
$3}'`
mysql_query(conn_ptr,"INSERT
INTO
student(id,name,score)
values('$ID','$NAME','$SCORE')");

㈥ linux C语言 连接mysql编码问题

默认建的数据库是utf8,建数据库的时候字体是可以设置的,可以试试,我是有设过中文字码的,建数据库的时候设的,可以正确显示

㈦ 关于linux下c语言链接mysql

和.net同样的道理,你在.net也需要在你的部署包中包含dll才能去连接,除非你静态联接了相关的code,
在linux下你需要下载mysql的c库开发包(libmysql++-dev
libmysql++2c2a
libmysqlclient15-dev
libmysqlclient15off)
这里面已经包含了动态库和静态库,如果是静态库链接,你就只需要把你的程序部署给别人即可,如果是动态链接,还需要把相关的.so也包含在你的部署包中分发给使用者

㈧ 在linux中如何实现C++与MySql的连接

1,用C的接口。
先装mysql,只要client就好了,./configure的时候可以用--without-server
然后写程序的时候包含mysql.h

MYSQL mysql;
mysql_init(&mysql);
初始化mysql引擎,
用mysql_real_connect()函数连接数据库。
....
mysql.h中有一些对C的API函数,你可以在手册里查到。你自己可以封装成类。或者干脆网上下人家封装好的代码。
编译的时候加-lmysqlclient, -I[path to mysql headers]

2,用mysql的 c++开发包
libmysql++-dev
libmysql++2c2a
libmysqlclient15-dev
libmysqlclient15off

关于里面的类是如何封装的,我没用过,自己看doc吧, 呵呵。

㈨ c++ 怎么样利用 mysql++ 连接 mysql 在linux 下

下面有一个用GCC编译的例子希望对你有所帮助.
#include<stdio.h>
#include<mysql.h>
int main()
{
/*declare structures and variables */
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;

//initialize MYSQL structure
mysql_init(&mysql);

//connect to database
mysql_real_connect(&mysql,"localhost","john","doe","db1",0,null,0);

//execute query
mysql_query(&mysql,"select title,author from books");

//get result set
result=mysql_store_result(&mysql);

//process result set
while((row=mysql_fetch_row(result))
{
fprintf(stdout,"%s - %s\n",row[0],row[1]);
}

//clean up
mysql_free_result(result);
mysql_close(&mysql);
}
(假设mysql安装在/usr/local/mysql目录下)
完成之后,保存该文件(名为:sample.c),并且进行编译:
[user@host]$ /usr/bin/gcc sample.c -o sample.bin -I/usr/local/mysql/include -L/usr/local/mysql/lib -lmysclient -lz

-lmysclient 选项告诉连接程序连接libmysqlclient库,而-I和-L选项告诉编译程序在什么位置分别查找MySQL头文件和库,-o选项告诉编译程序分配给最终可执行二进制文件的名称.如果没有使用这些变量,GCC则使用默认值a.out

说明:我不是用linux的,恰好我这里有这样的一个例子,所以拿出来希望对你有所帮助,更加详细到mysql的官方网站上去看吧.
http://dev.mysql.com/doc/refman/4.1/en/apis.html

㈩ linux c怎么使用mysql数据库

1. 通过调用mysql_library_init(),初始化MySQL库。库可以是mysqlclient C客户端库,或mysqld嵌入式服务器库,具体情况取决于应用程序是否与“-libmysqlclient”或“-libmysqld”标志链接。
2. 通过调用mysql_init()初始化连接处理程序,并通过调用mysql_real_connect()连接到服务器。
3. 发出SQL语句并处理其结果。(在下面的讨论中,详细介绍了使用它的方法)。
4. 通过调用mysql_close(),关闭与MySQL服务器的连接。
5. 通过调用mysql_library_end(),结束MySQL库的使用。

热点内容
我的世界好玩地铁服务器 发布:2024-11-15 17:48:54 浏览:359
1710小游戏服务器ip 发布:2024-11-15 17:48:01 浏览:663
狂三脚本 发布:2024-11-15 17:31:38 浏览:872
附近存储柜 发布:2024-11-15 17:15:17 浏览:452
王选解决汉字存储问题 发布:2024-11-15 17:15:11 浏览:660
球球大作战安卓为什么不能玩哪些模式 发布:2024-11-15 17:14:26 浏览:996
存储器讲课 发布:2024-11-15 17:14:12 浏览:196
安卓充电头怎么称呼 发布:2024-11-15 17:11:17 浏览:446
猎人手游源码 发布:2024-11-15 17:09:28 浏览:433
qt资源图片编译 发布:2024-11-15 16:59:26 浏览:666