CakePHP: Keine solche Datei oder ein Verzeichnis (Versuch über Unix zu verbinden: ///var/mysql/mysql.sock)
-
09-10-2019 - |
Frage
Ich habe eine CakePHP App läuft auf meinem lokalen Rechner (Mac OS X) für eine Weile hatte und dann suddently merke ich, dass ich nicht zu mysql.sock verbinden kann.
Ich erhalte diese Fehlermeldung:
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]
Die Linie 540 von dbo_mysql.php lautet:
$this->connection = mysql_connect($config['host'] . ':' . $config['port'], $config['login'], $config['password'], true);
Ich habe überprüft, gibt es keine fle //var/mysql/mysql.sock. Es ist eigentlich in /tmp/mysql.sock
Ich habe versucht, die Änderung meiner php.ini.default die oben anzupassen, aber es ist bereits auf Blick in / tmp / für lokale Verbindungen. Warum und woher kommt der Fehler aus?
Hat über einen ähnlichen Fehler jemand kommen?
Danke,
Jonesy
Lösung
Versuchen Sie einen absoluten Pfad der die mysql.sock Datei in der APP / config / database.php
vorbei<?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'
);
}
Das ist besser als über eine IP für die lokale Verbindung läuft als die Socket-Verbindung ist viel, viel schneller.
Andere Tipps
Wenn Sie Problem haben mit CakePHP 2.0, versuchen Sie dies:
sudo mkdir /var/mysql
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
In phpcake 2.0 Verwendung 'unix_socket' anstelle von Port
<?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
);
}