翱翔天空♂鹏
Debian下用C语言访问MySQL-Server-5.0数据库[自行测试成功]
翱翔天空♂鹏 发表于 2009-01-06 17:17:34
首先要在Debin-40r1(内核2.6.18-5-686)下安装MySQL-Server-5.0
root: ~ $ apt-get install mysql-server-5.0 mysql-client-5.0 libmysqlclient15-dev(mysql的头文件)libmysqlclient15off (mysql的库文件)
假定已安装成功,相关文件如下:
头文件在/usr/include/mysql目录下;
库文件在/usr/lib/mysql目录下:
以vi testsql.c启动编辑,其内容如下:
#define HOSTNAME "127.0.0.1"
#define USERNAME "root"
#define PASSWORD ""
#define DATABASE "mysql"
#include "/usr/include/mysql/mysql.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
char sql[255];
MYSQL mysql; /* 定义SQL描述符 */
sprintf(sql, "select * from user"); /* 定义执行的SQL语句 这里是mysql数据库里的user表 */
printf("Start\n");
mysql_init(& mysql); /* 初始化SQL描述符 这很重要 */
/* 用指定用户和密码连接本地SQL服务器的指定数据库 端口默认 */
mysql_real_connect(&mysql, HOSTNAME, USERNAME, PASSWORD, DATABASE, 0, NULL,
CLIENT_LOCAL_FILES);
mysql_select_db(& mysql,DATABASE); /* 设定连接数据库为mysql */
mysql_real_query(& mysql, sql, strlen(sql)); /* 在服务器上执行定义的SQL语句 */
mysql_close(& mysql); /* 关闭SQL描述符 */
printf("sql errror!%s\n",mysql_error(&mysql)); /* 如果发生错误打印错误代码 */
return 0;
}
编译 :gcc -c testsql.c -I /usr/include/mysql/ 这里的-I 是指定头文件目录 -c 是编译成目标代码
连接 :gcc testsql.o -o testsql -L /usr/lib/ -lmysqlclient -lz 这里的-L是指定库文件路径 这个参数-lmysqlclient是因为 C API代码包含在mysqlclient库中,正因为有了它才允许C程序访问数据库。
