现在的位置: 首页 > 综合 > 正文

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

2013年06月23日 ⁄ 综合 ⁄ 共 836字 ⁄ 字号 评论关闭

使用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脚本

抱歉!评论已关闭.