1

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

我根据本书设置了一个 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] Can't connect to local MySQL server through socket '/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 解决了类似的问题,但我使用的是共享主机,而不是本地主机。
4

1 回答 1

3

这是官方的!我是分贝!

我可以确认这个问题不是由 Cakephp 或 Mysql 引起的,而是因为我自己做了一些事情而忘记了......

我在 database.php 中有一个小开关,可以自动检测我是否处于开发、测试、登台环境等环境中。我将默认设置为本地,并且由于 bash 脚本没有选择 $_SERVER['SERVER_NAME']我用于开关的,它默认为我的本地数据库。

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

:)

于 2012-07-21T13:07:04.307 回答