[百晓生]-linux连接mysql排错
1.源码
//connect-mysql.c
#include <stdio.h>
#include "/usr/include/mysql/mysql.h"
int main()
{
MYSQL mysql;//need a instance to init
int t,r;//connect the database
mysql_init(&mysql);
if(!mysql_real_connect(&mysql,"localhost","root","yourpassword","mysql",0,NULL,0))
{
printf("Error connecting to database: %s \n",mysql_error(&mysql));
}
else
{
printf("Connected MySQL successfully! \n");
}
mysql_close(&mysql);
return 0;
}
2.头文件链接
#include "/usr/include/mysql/mysql.h"
这里写死了相应头文件的目录位置,不利于不同系统的程序移埴,在此只是为了测试,以减少代码输入量
3.库文件链接
由于初学者对于mysql配置文件及相应文件所在目录不是很熟悉,这里可以在终端输入mysql_config,查看相应的文件所在目录
Usage: /usr/lib/mysql/mysql_config [OPTIONS]
Options:
--cflags [-I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC -fPIC -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1]
--include [-I/usr/include/mysql]
--libs [-L/usr/lib/mysql -lmysqlclient -lpthread -lz -lm -lrt -lssl -lcrypto -ldl]
--libs_r [-L/usr/lib/mysql -lmysqlclient -lpthread -lz -lm -lrt -lssl -lcrypto -ldl]
--plugindir [/usr/lib/mysql/plugin]
--socket [/var/lib/mysql/mysql.sock]
--port [0]
--version [5.5.28]
--libmysqld-libs [-L/usr/lib/mysql -lmysqld -lpthread -lz -lm -lrt -lssl -lcrypto -lcrypt -ldl -laio]
--variable=VAR VAR is one of:
pkgincludedir [/usr/include/mysql]
pkglibdir [/usr/lib/mysql]
plugindir [/usr/lib/mysql/plugin]
可以看到库文件信息: --libs [-L/usr/lib/mysql -lmysqlclient]
4.源码编译
这时在终端输入:gcc connect-mysql.c -L /usr/lib/mysql/ -lmysqlclient
成功编译,然后执行文件,到此连接mysql成功!