2

私はcakephpクックブックでSimpleAcl制御のアプリケーションチュートリアルを実行しようとしています。アイデアは:

データベースの作成

 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)を使用しています...誰かが問題が何であるか知っていますか?

4

6 に答える 6

14

これは、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'
);
于 2012-07-11T01:35:58.460 に答える
3

次のようにして、localhost の 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' 経由でソケットの場所を指定することにより、ソケット ファイルを探すパスを変更します。全て。

于 2009-11-09T16:37:01.643 に答える
3

Ok i found a way to do it, it might help people who have the same problem : i set a the host to 127.0.0.1 so cake can connect to it. Thanks for help.

于 2009-11-06T18:14:53.937 に答える
1

ケーキはソケットを見つけることができません。

ソケットがある場所から Cake がそうあるべきだと考える場所へのシンボリックリンクを作成してみてください:

ln -s /アプリケーション/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

于 2009-11-06T16:44:46.230 に答える
1

CakePHP に移行したときに、この問題が発生しました。現在の MAMP 1.9.x バージョンでは、'host' => '127.0.0.1' および 'port' => 8889 を使用していることを確認するだけです (デフォルトの mysql ポートを変更しない限り)。

私にとって完璧に機能します。

于 2011-06-23T13:07:03.813 に答える
0

友人が Windows でこれをセットアップするのを手伝っています。

EasyPHP の内部では、すべて正常に動作します (Mysql との接続)。そのため、Cakephp は PDO を使用してデータベースに接続します。

BAKE を使用してモデルを生成しようとすると、「エラー: データベース接続 "Mysql" が見つからないか、作成できませんでした。」

コマンド ラインの PHP は、Windows フォルダー内で php.ini を見つけようとするため、PDO および Mysql 拡張機能がないと、既定の構成を見つけて取得することはできません。

WINDOWS フォルダ内に php.ini をコピーすると、問題なく動作します。

于 2011-12-30T19:21:44.927 に答える