2

当我的隧道已连接(af 隧道)时,我正在尝试运行一个 cakephp 控制台应用程序,该应用程序将连接到我的 mysql 数据库(通过隧道)。

我的数据库配置中有这个:

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => '11111111ZQyI',
    'password' => '11111111111MR',
    'database' => '111111111111115bc',
    'port' => '10000',
    'prefix' => '',
    //'encoding' => 'utf8',
);

我会收到此错误消息:

Error: exception 'MissingConnectionException' with message 
'Database connection "Mysql" is     missing, or could not be 
created.' in /.../lib/Cake/Model/Datasource/Database/Mysql.php:161
Stack trace:
#0 /..../lib/Cake/Model/Datasource/DboSource.php(262): Mysql->connect()
4

1 回答 1

2

答案是我需要以某种方式调用 mysql 来连接 TCP 而不是套接字。显然,当您使用 localhost 它会自动触发一个 Socket 连接,如果您使用 12.0.0.1 它会触发一个 TCP 连接。所以这是解决方案:

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => '127.0.0.1',
    'login' => '11111111ZQyI',
    'password' => '11111111111MR',
    'database' => '111111111111115bc',
    'port' => '10000',
    'prefix' => '',
    //'encoding' => 'utf8',
);
于 2013-04-25T02:21:16.587 回答