ubuntu下c与mysql的交互
mysql早装好了,最近想让C与sql进行交互,总是"error: mysql.h: 没有那个文件或目录"
以下是从网上找的解决方法,主要是未安装开发包,以及gcc参数问题:
?
?
1:先安装MySQL:
sudo apt-get install mysql-server mysql-client
2:再装开发包:
sudo apt-get install libmysqlclient15-dev
此时头文件会出现在/usr/include/mysql/里
3:安装完以后,C代码里添加头文件
#include <mysql.h>
4:编译方法:
方法1:gcc $(mysql_config --cflags) xxx.c -o xxx $(mysql_config --libs)
方法2:gcc xxx.c -o xxx $(mysql_config --cflags) $(mysql_config --libs)
方法3:gcc test.c -o test $(mysql_config --cflags --libs) ?
?
?
?
5:可以用代码测试一下
代码:
/* Simple C program that connects to MySQL Database server*/
#include <mysql.h>
#include <stdio.h>
main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = ""; /* 此处改成你的密码 */
char *database = "mysql";/*安装mysql时自带的一个db*/
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
/* send SQL query */
if (mysql_query(conn, "show tables")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s \n", row[0]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
}
//////////
编译后运行会输出现有数据库和表内容。
?
//来源网址
【http://hi.baidu.com/zznoip/blog/item/5e221ead10c5dfc17cd92a58.html】2011/5/22