问题描述:
使用mysql_real_connect连接数据库时,报错Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
使用mysql_real_connect连接数据库时,报错Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
而此时直接使用mysql命令连接数据库可以
解决方法:
将参数localhost换成127.0.0.1即可
原因分析:
网上查找发现localhost与127.0.0.1是不同的,localhost是通过UNIX socket连接的,而127.0.0.1是通过TCP/IP连接的。
详细信息参考http://www.111cn.net/database/mysql/45518.htm。
注:
在[mysql]中添加protocol=tcp后,mysql -hlocalhost和mysql -h127.0.0.1都通过TCP/IP连接,但mysql_real_connect中使用localhost依然不通,还未知原因。