环境: linux mysql5.5 gcc
1:安装mysql5.5【安装步骤省略】,安装目录为/usr/local/mysql-5.5/
2:编写mysql_1.c文件:
3:编译生成执行文件,命令如下:
gcc `mysql_config --cflags` -o mysql_1.o -c mysql_1.c 【`mysql_config --cflags`是为了找到头文件mysql.h】
gcc `mysql_config --libs` -o mysql_1 mysql_1.o
4: 执行命令 ./mysql_1 出现错误,错误如下:
./mysql_1: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
5:创建动态库的软连接,命令如下:
ln -s /usr/local/mysql-5.5/lib/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so.18
Connected to Mysql successfully!
至此结束!
1:安装mysql5.5【安装步骤省略】,安装目录为/usr/local/mysql-5.5/
2:编写mysql_1.c文件:
#include <stdio.h>
#include <string.h>
#include "mysql.h"
int main(int argc,char *argv[])
{
MYSQL mysql;
mysql_init(&mysql);
if(!mysql_real_connect(&mysql, "localhost", "root", "", "mysql", 0, NULL,
0)) {
printf("Failed to connect to Mysql!\n");
return 0;
}else {
printf("Connected to Mysql successfully!\n");
}
mysql_close(&mysql);
return 0;
}
3:编译生成执行文件,命令如下:
gcc `mysql_config --cflags` -o mysql_1.o -c mysql_1.c 【`mysql_config --cflags`是为了找到头文件mysql.h】
gcc `mysql_config --libs` -o mysql_1 mysql_1.o
4: 执行命令 ./mysql_1 出现错误,错误如下:
./mysql_1: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
5:创建动态库的软连接,命令如下:
ln -s /usr/local/mysql-5.5/lib/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so.18
ldconfig 【ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享】
Connected to Mysql successfully!
至此结束!
最后再附上一段c查询数据库的程序:
#include <stdio.h>
#include <string.h>
#include "mysql.h"
int main()
{
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
char *query;
int flag, t;
unsigned int num_fields;
unsigned int i;
MYSQL_FIELD *fields;
mysql_init(&mysql);
if(!mysql_real_connect(&mysql, "localhost", "root", "", "mysql", 0, NULL, 0)) {
printf("Failed to connect to Mysql!\n");
return 0;
}else {
printf("Connected to Mysql successfully!\n");
}
query = " select db,name from mysql.proc ";
flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query));
if(flag) {
printf("Query failed!\n");
return 0;
}else {
printf("[%s] made...\n", query);
}
res = mysql_store_result(&mysql);
printf("result : %d records\n", mysql_num_rows(res));
printf("fields column:");
num_fields = mysql_num_fields(res);
fields = mysql_fetch_fields(res);
for(i = 0; i < num_fields; i++)
{
printf("%u:%s\t", (i+1), fields[i].name);
}
printf("\n");
while(row = mysql_fetch_row(res)) {
for(t=0; t<mysql_num_fields(res); t++)
{
printf("%s\t", row[t]);
}
printf("\n");
}
mysql_close(&mysql);
return 0;
}