문제

나는 그렇게하려고한다 간단한 ACL 제어 응용 프로그램 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',
);

그래서 PHP v5를 실행하는 마지막 MAMP 버전 (1.7.2) 인 Last CakePHP 버전 (1.2.5)을 사용하고 있습니다 ... 누군가 문제가 무엇인지 알고 있습니까?

도움이 되었습니까?

해결책

또한 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',
);

MySQL이라는 이름의 LocalHost를 사용할 때 로컬 소켓을 통해 연결하려고합니다. 소켓이 '포트'를 통해 위치를 지정하면 소켓 파일을 찾는 경로를 변경합니다. 127.0.0.1을 사용하거나 모든 종류의 IP를 지정하여 MySQL을 HTTP를 통해 연결하라고 말하면 소켓을 사용하지 않습니다. 모두.

다른 팁

이것은 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'
);

좋아, 나는 그것을 할 수있는 방법을 찾았다. 같은 문제가있는 사람들에게 도움이 될 수있다. 나는 호스트를 127.0.0.1로 설정하여 케이크가 연결할 수있게한다. 도와 줘서 고마워.

케이크는 소켓을 찾을 수 없습니다.

소켓이있는 곳에서 케이크가 생각해야 할 곳까지 상징적 인 링크를 만들어보십시오.

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

CakePHP로 이사했을 때이 문제가있었습니다. 현재 MAMP 1.9.x 버전에서는 'host'=> '127.0.0.1'및 'port'=> 8889를 사용해야합니다 (기본 MySQL 포트를 변경하지 않는 한).

나를 위해 완벽하게 작동합니다.

친구가 Windows에서 이것을 설정하도록 돕고 있습니다.

EasyPHP 내부에서는 모두 잘 작동합니다 (MySQL과의 연결). 따라서 CakePHP는 PDO를 사용하여 데이터베이스에 연결합니다.

Bake를 사용해 보면 모델을 생성하려면 "오류 : 데이터베이스 연결"MySQL "이 누락되었거나 생성 할 수 없습니다."

PHP ON COMMANT LINE PHP.ini를 찾아서 DE Windows 폴더 내부에서 PDO 및 MySQL 확장자없이 기본 구성을 찾을 수 없도록 찾아보십시오.

de Wind

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top