2010-10-19 26 views
13

我有一個cakephp應用程序在我的本地計算機上運行良好(mac osx)一段時間,然後突然我意識到我無法連接到mysql.sock。CakePHP:沒有這樣的文件或目錄(試圖通過unix連接:///var/mysql/mysql.sock)

我得到這個錯誤:

Warning (2): mysql_connect() [http://php.net/function.mysql-connect]: [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) [CORE/cake/libs/model/datasources/dbo/dbo_mysql.php, line 540] 

線dbo_mysql.php 540讀取:

$this->connection = mysql_connect($config['host'] . ':' . $config['port'], $config['login'], $config['password'], true); 

我檢查,沒有FLE // VAR/mysql的/ MySQL的。襪子。它實際上在/tmp/mysql.sock中

我試着改變我的php.ini.default以匹配上面的內容,但它已經設置爲在/ tmp /中查看本地連接。爲什麼,錯誤來自哪裏?

有沒有人遇到類似的錯誤?

感謝,

Jonesy

+7

嘗試'127.0.0.1'取代'localhost' – 2010-10-19 11:58:21

+0

哪裏?訪問應用程序?在php.ini文件中? – iamjonesy 2010-10-19 12:06:34

+6

'$ config ['host'] ='127.0.0.1''。如果使用'localhost',mysql默認使用本地unix域套接字。切換到IP強制它使用TCP套接字。 – 2010-10-19 12:17:40

回答

12

嘗試傳遞一個絕對路徑的文件的mysql.sock在APP /配置/ database.php中

<?php 
    class DATABASE_CONFIG { 
     var $default = array(
      'driver' => 'mysql', 
      'persistent' => false, 
      'host' => 'localhost', 
      'login' => 'dbUser', 
      'password' => 'dbPassword', 
      'database' => 'dbName', 
      'prefix' => '', 
      'port' => '/path/to/mysql.sock' 
     ); 
    } 

這比通過IP運行的更好對於本地連接來說,套接字連接要快得多。

+0

從配置中傳遞端口! – 2011-01-09 11:52:18

+1

這適用於CakePHP 1.3以下版本。上面,見Kent Widman的回答如下。 – 2012-05-31 16:49:13

+0

考慮到答案在這一點上差不多2年有道理。 – 2012-07-18 15:49:02

6

在phpcake 2.0使用的不是端口

<?php 
    class DATABASE_CONFIG { 
     var $default = array(
      'datasource' => 'Database/Mysql', 
      'persistent' => false, 
      'host' => 'localhost', 
      'login' => 'dbUser', 
      'password' => 'dbPassword', 
      'database' => 'dbName', 
      'prefix' => '', 
      'unix_socket' => '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock', //Path for mac XAMPP 
     ); 
    } 
12

'unix_socket' 如果您正在使用CakePHP的2.0有問題,試試這個:

sudo mkdir /var/mysql 
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock 
+2

適用於Mac的MAMP – Pandaski 2012-11-04 08:20:12

+0

這對我有用 - 謝謝 – OneSneakyMofo 2013-01-15 19:37:51

+0

適用於CakePHP 1.3,也適用於帶'sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock/var/mysql/mysql的Xampp。 sock' – 2013-08-05 13:28:46

相關問題