Linux 下 C语言连接MYSQL数据库

时间:2021-12-04 11:29:09

    网上的资料很多,但实际编译的时候会出现一些问题,比如说找不到mysql头文件。在这里把解决方案记录一下,以备不时之需。


    以一个简单的连接数据库为例:


  #include <stdlib.h>
  #include <stdio.h>
  #include "mysql.h"


       int main(int argc , char* argv[]){

MYSQL * conn_ptr;
conn_ptr =  mysql_init(NULL);

if( !conn_ptr ){
fprintf(stderr,"mysql init failed\n");
return EXIT_FAILURE;

}

conn_ptr =mysql_real_connect(conn_ptr,"localhost","root","root","foo",0,NULL,0);


if( conn_ptr ){

printf("connection success \n");

}else{

printf("connection failed \n");
}

mysql_close(conn_ptr);


return EXIT_SUCCESS;


}

     

      写好以后,用 gcc -0 mysqldemo mydqldemo.c  进行编译,发现很正常的报错, 说mysql.h 找不到。

Linux 下 C语言连接MYSQL数据库Linux 下 C语言连接MYSQL数据库

      这里需要在编译的时候引入mysql.h的路径

 gcc -o mysqldemo mysqlDemo.c  -I/usr/include/mysql/   我的在这个路径下有mysql.h这个头文件,其他的电脑可能情况不大一样。

回车发现还是会报错。

Linux 下 C语言连接MYSQL数据库Linux 下 C语言连接MYSQL数据库

于是,我在网上搜索到了解决方案, 在上面的命令后补上:  -lmysqlclient  

Linux 下 C语言连接MYSQL数据库

 编译通过。

Linux 下 C语言连接MYSQL数据库

运行:

Linux 下 C语言连接MYSQL数据库Linux 下 C语言连接MYSQL数据库

 我推测是因为虽然引入了头文件,但是编译器并没有找到方法的具体实现,具体情况我等日后查清楚了再补全。