【发布时间】:2013-02-04 05:50:06
【问题描述】:
我正在开发一个访问 mysql 的 C 程序。我的代码中有以下行:
sts = connect_to_server(&mysql, "localhost", "my_username",
"my_password, "my_databasename");
当然是替换了实际值。我明白了:
无法连接到 MySQL:错误:无法连接到本地 MySQL 服务器 通过套接字'/tmp/mysql.sock' (2)
我见过其他类似的问题,答案通常是服务器宕机。在这种情况下,它不是。 PHPMyAdmin 可以正常访问服务器。
还有许多其他响应说要检查套接字文件。它存在
(/Applications/AMPPS/mysql/tmp/mysql.sock).
这可能与路径有关吗?它没有添加到“/temp/mysql.sock”的路径,因此找不到它?
我对unix知之甚少。我已经运行 OSX 将近 10 年了,但我几乎从未降到那个水平。
【问题讨论】:
-
/Applications/AMPPS/mysql/tmp/mysql.sock!=/tmp/mysql.sock -
我知道。我没有指定缩写路径。图书馆例程是。我在问如何告诉它剩下的路径。我尝试了环境变量并将其添加到 PATH 本身。没有效果。
-
重启 MySQL 服务器检查日志中是否有任何错误。
-
connect_to_server()来自哪里? -
原来 connect_to_server() 没有将套接字名称传递给 mysql_real_connect()。编写它的人只打算使用端口,并且套接字名称为 NULL。呃。很抱歉给您带来困扰。我本来希望 mysql_real_connect 查看 CNF 文件,但显然它没有。
标签: mysql c macos sockets connection