Failed to connect to database: Error: Can't connect to local MySQL server through socket '/var/lib/m

使用mysql_real_connect(&mysql, NULL, NULL, NULL,"lwctest",0,NULL,0)来连接数据库包上面的错误,使用find命令来查找mysql.sock,发现其位置在/var/run/mysql/mysql.sock,怎么修改这个位置呢,在网上搜了搜,发现可以在mysql_config里改。找到mysql_config,其中有一行为socket='/var/lib/mysql/mysql.sock',然后改为socket='/var/run/mysql/mysql.sock',再次连接就可以了。
  出现这个问题可能是因为mysql server是suse自带的mysql.sock在系统上是本身存在的,为了能在c/c++里使用mysql,我下了一个MySQL-5.5.18-1.sles11.x86_64.tar,这个包里我又只安装了MySQL-devel-5.5.18-1.sles11.x86_64.rpm,使用rpm -pql MySQL-devel-5.5.18-1.sles11.x86_64.rpm,得知里面主要就是安装库和头文件,其中还有/usr/bin/mysql_config啦,显然,系统自带的mysql server版本和这个库版本不一致,所以里面的参数有不一样的情况了。现在姑且这样用着了,以后实在不行了就把mysql的版本给换了

ps:
  最近又看了一下,在调用mysql_real_connect前,调用了mysql_options(&m_mysql, MYSQL_READ_DEFAULT_GROUP, "mysqltest.out")的,MYSQL_READ_DEFAULT_GROUP的意思是说从/etc/my.cnf里读取指定字段的额外信息,当为时MYSQL_READ_DEFAULT_GROUP总是读取client字段的内容,修改my.cnf才是提倡的改法哈mysql_config实际是一个shell脚本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值