cakephp:没有这样的文件或目录(尝试通过unix:///var/mysql/mysql.sock进行连接)
-
09-10-2019 - |
题
我已经在本地计算机(MAC OSX)上运行了一个CakePHP应用程序一段时间,然后我意识到我无法连接到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.sock。它实际上在 /tmp/mysql.sock中
我尝试更改我的php.ini.default以匹配上述内容,但它已经设置为in / tmp / for local Connections。为什么,错误来自哪里?
有人遇到类似错误吗?
谢谢,
琼斯
解决方案
尝试通过应用程序/config/database.php中的mysql.sock文件传递绝对路径
<?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运行的本地连接要好,因为套接字连接要快得多。
其他提示
如果您的CakePHP 2.0有问题,请尝试以下操作:
sudo mkdir /var/mysql
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
在phpcake 2.0中使用“ unix_socket”而不是端口
<?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
);
}
不隶属于 StackOverflow