代码之家  ›  专栏  ›  技术社区  ›  Julien

Mac OS上的cakephp控制台(bake),带有mamp:数据库连接错误

  •  2
  • Julien  · 技术社区  · 16 年前

    我正在尝试 Simple Acl controlled Application Cakephp食谱中的教程。 这个想法是:

    创建数据库

     CREATE TABLE users (
     id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL UNIQUE,
     password CHAR(40) NOT NULL,
     group_id INT(11) NOT NULL,
     created DATETIME,
     modified DATETIME
     );
    
    
     CREATE TABLE groups (
     id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
     name VARCHAR(100) NOT NULL,
     created DATETIME,
     modified DATETIME
     );
    
    
     CREATE TABLE posts (
     id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
     user_id INT(11) NOT NULL,
     title VARCHAR(255) NOT NULL,
     body TEXT,
     created DATETIME,
     modified DATETIME
     );
    
     CREATE TABLE widgets (
     id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
     name VARCHAR(100) NOT NULL,
     part_no VARCHAR(12),
     quantity INT(11)
     );
    

    然后运行cake bake all命令,这是我遇到问题的时候:

    Welcome to CakePHP v1.2.4.8284 Console
    ---------------------------------------------------------------
    App : app
    Path: /Applications/MAMP/htdocs/luis/app
    ---------------------------------------------------------------
    ---------------------------------------------------------------
    Bake All
    ---------------------------------------------------------------
    
    Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (2) in /Applications/MAMP/htdocs/luis/cake/libs/model/datasources/dbo/dbo_mysql.php on line 374
    
    Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /Applications/MAMP/htdocs/luis/cake/libs/model/datasources/dbo/dbo_mysql.php on line 379
    
    Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in /Applications/MAMP/htdocs/luis/cake/libs/model/datasources/dbo/dbo_mysql.php on line 387
    
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /Applications/MAMP/htdocs/luis/cake/libs/model/datasources/dbo/dbo_mysql.php on line 411
    Error: Your database does not have any tables.
    

    我的数据库配置如下:

    var $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'port' => 8889,
        'login' => 'root',
        'password' => 'root',
        'database' => 'cake',
    );
    

    所以我使用的是最后一个cakephp版本(1.2.5),最后一个运行php v5的mamp版本(1.7.2)。 有人知道是什么问题吗?

    6 回复  |  直到 13 年前
        1
  •  3
  •   Abba Bryant    16 年前

    您还可以通过执行以下操作来使用本地主机IP地址

    var $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'port' => 8889,
        'login' => 'root',
        'password' => 'root',
        'database' => 'cake',
        'port' => '/Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock',
    );
    

    这是因为当使用命名的localhost时,mysql将尝试通过本地套接字进行连接。通过指定套接字通过“port”的位置,可以更改它在其中查找套接字文件的路径。通过使用127.0.0.1或指定任何类型的IP,您可以告诉MySQL通过HTTP进行连接,而HTTP根本不使用套接字。

        2
  •  14
  •   Ryan White    13 年前

    这是mamp上localhost的2.x版数据库配置

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'USERNAME',
        'password' => 'PASSWORD',
        'database' => 'DATABASE',
        'encoding' => 'utf8',
        'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'
    );
    
        3
  •  3
  •   Julien    16 年前

    好吧,我找到了一种方法,它可以帮助有相同问题的人:我将主机设置为127.0.0.1,这样蛋糕就可以连接到它。 谢谢你的帮助。

        4
  •  1
  •   cgr    16 年前

    蛋糕找不到插座。

    尝试创建一个符号链接,从插座所在的位置到Cake认为它应该所在的位置:

    ln-s/applications/mamp/tmp/mysql/mysql.sock/tmp/mysql.sock

        5
  •  1
  •   Desert Crystal    14 年前

    我搬到Cakephp时遇到了这个问题。在我当前的mamp 1.9.x版本中,我只需确保使用 '主机'=>'127.0.0.1'和 'port'=>8889(除非更改默认mysql端口)。

    非常适合我。

        6
  •  0
  •   paulorcf    13 年前

    我正在帮助一个朋友在Windows上设置这个。

    在一个EasyHP的东西里面,一切都可以正常工作(与MySQL连接)。 所以cakephp使用pdo连接到数据库。

    尝试使用bake生成模型时引发:“错误:数据库连接“mysql”丢失,或无法创建。”

    命令行上的php尝试在de windows文件夹中查找php.ini,这样他们就找不到没有pdo和mysql扩展的默认配置。

    把php.ini复制到de windows文件夹中,烘焙材料就可以了!