[百晓生]-linux连接mysql排错

 

[百晓生]-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成功!
 
 

你可能感兴趣的:(mysql,linux,linux,localhost,database,解决方案,include,排错,百晓生)