Cakephp Shell无法连接到mysql

时间:2012-07-21 12:20:55

标签: mysql cakephp cakephp-2.0

我正在尝试让一个crontab为Cakephp工作(暂时在我的共享Dreamhost服务器上运行)。

我根据book设置了一个shell,它可以通过cron运行或手动执行(通过shell文件,例如:

cron.sh
#########
cd /pathToApp/app/Console
/usr/local/bin/php cake.php updater list_reports

其中updater是我的shell,list_reports是其方法。

当我尝试访问shell中的数据库时出现问题(“在shell中使用模型”,相同的链接)。

错误讯息:

  

错误:数据库连接“SQLSTATE [HY000] [2002]无法连接到   本地MySQL服务器通过套接字'/var/run/mysqld/mysqld.sock'(2)“   缺失或无法创建。

我的数据库设置(网站适用于http,我是否需要添加unix_socket或其他内容?

array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'mysql.mydomain.net',
        'port' => '3306',
        'login' => '*******',
        'password' => '*******',
        'database' => '*******',
        'prefix' => '',
    );

我试过了:

  • 创建符号链接到/var/run/mysqld/mysqld.sock - 权限被拒绝
  • 我可以使用共享主机吗?
  • 尝试对上面的数据库设置进行各种更改,没有运气。
  • 我注意到人们用127.0.0.1替换localhost已经解决了类似的问题,但是我使用的是共享主机,而不是本地主机。

1 个答案:

答案 0 :(得分:3)

这是正式的!我是一个db!

我可以确认这个问题不是由Cakephp或Mysql造成的,而是由于我自己完成并忘记了......

我在database.php中有一个小开关来自动检测我是否在开发,测试,登台环境等。我将默认设置设置为本地,并且因为bash脚本没有接收$ _SERVER ['我用于交换机的SERVER_NAME'],默认为我的本地数据库。

感谢ifunk发现线索,这使我能够解开这个并重回正轨!

:)