linux上怎么mysql配置文件socket路径设置好了,C语言链接数据库还是失败
提示Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
但我的配置文件socket路径已经都写一样了
1[client]
2 port = 3306
3 socket = /tmp/mysql.sock
4 #socket=/var/lib/mysql.sock
5 default-character-set = utf8mb4
6
7 [mysql]
8 prompt="MySQL [\d]> "
9 no-auto-rehash
10
11 [mysqld]
12 port = 3306
13 socket = /tmp/mysql.sock
求助下大神,或者有什么推荐资料可以发一下。我是第一次在linux上用C语言对接数据库,linux是装了lamp环境。然后好像C语言没办法对接,就去百度,然后去mysql官网下载了个mysql-connector-c-6.1.6-linux-glibc2.5-x86_64.tar.gz,好像是专门链接C的库。这是我的C语言写的测试程序。
C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include "mysql.h"
#include <string.h>
void main()
{
char sql[]="select * from user where id=5";
int t;
MYSQL *conn=mysql_init(NULL);
printf("%s\n",mysql_error(conn));
MYSQL_RES *res; //这个结构代表返回行的一个查询结果集
MYSQL_ROW row; //一个行数据的类型安全(type-safe)的表示
if(!mysql_real_connect(conn,"localhost","root","admin","test", 0, NULL, 0) )
{
printf("连接数据库失败!\n%s\n",mysql_error(conn));
}
t=mysql_real_query(conn,sql,(unsigned int)strlen(sql));
if(t)
{
printf("执行出现异常:%s\n",mysql_error(conn));
}
res=mysql_store_result(conn);
while(row=mysql_fetch_row(res))
{
for(t=0;t<mysql_num_fields(res);t++)
{
printf("%s\t",row[t]);
}
}
mysql_free_result(res);//释放结果集使用的内存。
mysql_close(conn);
}
出现的错误是
连接数据库失败!
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
执行出现异常:MySQL server has gone away
Segmentation fault
请大家指导下,第一次在linux上写C语言链接数据库的程序。很多地方不懂。请多多指教