2013-02-04 93 views
0

我正在開發一個訪問mysql的C程序。我在我的代碼中有以下行:無法連接到C程序的mysql套接字

sts = connect_to_server(&mysql, "localhost", "my_username", 
      "my_password, "my_databasename"); 

用實際值代替當然。我得到:

Failed to connect to MySQL: Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

我已經看到類似這樣的其他問題,答案通常是服務器關閉。在這種情況下,它不是。 PHPMyAdmin可以很好地訪問服務器。

許多其他響應表示檢查套接字文件。它是目前

(/Applications/AMPPS/mysql/tmp/mysql.sock). 

這可能是與路徑或事情?它沒有添加到「/temp/mysql.sock」的路徑,因此無法找到它?

我對unix知之甚少。我已經運行了近10年的OSX,但我幾乎從未達到過這個水平。

+1

'/ Applications/AMPPS/mysql/tmp/mysql.sock'!='/ tmp/mysql.sock' – alk

+0

我知道。我沒有指定縮寫路徑。庫例程是。我在問如何告訴它剩下的路徑。我嘗試了環境變量並將其添加到PATH本身。沒有效果。 – user157426

+0

重新啓動MySQL服務器檢查日誌中的任何錯誤。 – SparKot

回答

0

查看mysql配置文件(典型的my.cnt某處在/etc下)並調整socket的值以適合您的需要。

Alternativly你可以只鏈接到/tmp/mysql.sock/Applications/AMPPS/mysql/tmp/mysql.sock

ln -s /Applications/AMPPS/mysql/tmp/mysql.sock /tmp/mysql.sock 
0

我想錯了的my.ini是越來越加載。默認情況下它會查看/etc/my.ini,因此如果存在,只需重命名或刪除它。重新啓動你的MySQL服務器。