2012-03-05 3 views
4

이것은 프레임 워크를 처음 설치 한 것이고 나는 꽤 단서가 없습니다.CakePHP에서 MySQL을 사용할 수 없습니다.

OSX 10.7에서 cakefp 프레임 워크를 /Library/WebServer/Documents/cakephp에로드하면 테스트 페이지를로드하고 오류 및 경고 일부를 제거 할 수있었습니다. 지금 당장이 문제를 해결하려고합니다.

Warning (2): PDO::__construct() [pdo.--construct]: [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) [CORE/Cake/Model/Datasource/Database/Mysql.php, line 160] 
    Cake is NOT able to connect to the database. 
    Database connection "SQLSTATE[HY000] [2002] No such file or directory" is missing, or could not be created. 

나는 무엇을 해야할지 잘 모릅니다. 나는 MySQL을 설치했다. MySQL PDO가 기본적으로 OSX에 설치되어 있습니까? 또는 설치해야합니까? 문제가있는 것 같으면 어떻게 설치되어 있는지 확인할 수 있습니다.

업데이트 : PDO MySQL의 드라이버가 활성화되어

. 또한 pro_mysql에 대한 phpinfo()은 다음과 같습니다

Directive      Local Value    Master Value 
pdo_mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock 

MySQL의 디렉토리 내 파일 시스템에 표시되지 않습니다하지만. 나는 그것을 만들어야 하나? 또는 어딘가에이 경로를 바꾸는 것이 어떨까요?

UPDATE : 나는 문제가 실제로 데이터베이스를 설정하지 않은 것으로 생각합니다. 나는 데이터베이스를 설정하지 말라.

나는 지금 그걸 알아 내려고 노력할 것 같아.

UPDATE :

마침내 나는 /var/mysql/mysql.sock에서 심볼릭 링크를 만들어이 고정이 케이크 /var/mysql/mysql.sock에 데이터베이스에 유닉스 소켓을 찾고 있었다이었다 해결하지만, MySQL이 /tmp/mysql.sock 의 소켓을 사용 된 것은 /tmp/mysql.sock.

+1

'phpinfo()'함수로 간단한 파일을 만들고'pdo_mysql' 변수를 검색하십시오. –

+1

심볼릭 링크를 추가하는 대신 CakePHP의'database.php'에서'unix_socket' 필드를 사용하고'/ tmp/mysql.sock'으로 설정할 수 있습니다. –

답변

2

그 자체가 설치되어 있지 않은 MySQL은 같은 이상을 보이지만, PDO 라이브러리를 웹 서버로 컴파일됩니다. 나는 OSX에서이를 확인하는 방법을 잘 모르겠지만, 당신은이 링크를 checkign 시도 할 수 있습니다 : http://www.sequelpro.com/docs/Install_MySQL_on_Mac_OS_X

편집

로그인 MySQL을 (mysql -u root -p)로하고 databas 만들 : 그럼 만들

create database cakephp 

을 새 사용자 이름/암호를 입력하고이 데이터베이스에 대한 액세스 권한을 부여하십시오. ,

<?php 
class DATABASE_CONFIG { 
    public $default = array(
     'datasource' => 'Database/Mysql', 
     'persistent' => false, 
     'host'  => 'localhost', 
     'login'  => 'cakephp', 
     'password' => 'cakepass', 
     'database' => 'cakephp', 
     'prefix'  => '' 
    ); 
} 
+0

MySql을 설치했는데 암호를 기억하고있을 것 같습니다. 케이크에 암호가 필요한 곳이 있습니까? – wbarksdale

+1

일반적으로 cakePHP의 설치 과정에서 데이터베이스 값을 입력하게됩니다 (설정 파일에서이 값을 변경해야 할 수도 있습니다. MySQL 서버가 실행 중인지 확인하려면 터미널을 열고 다음 명령을 사용하여 액세스하십시오. mysql -u root -p –

+0

help를 입력하거나 \ h 도움을 받으십시오 mysql> | – wbarksdale

0

아니, MySQL은 OSX와 함께 제공되지 않습니다

GRANT ALL ON cakephp.* TO [email protected] IDENTIFIED BY 'cakepass'; 
FLUSH PRIVILEGES; 

그리고 지금 database.php 설정 파일은 다음과 같이한다 :의 당신이 사용자 이름 CakePHP의 및 암호 cakepass을 만들려한다고 가정 해 봅시다 그것을 설치해야합니다.

가장 쉬운 해결책은 스스로 MySQL을 설치/컴파일하는 대신 XAMPP를 사용하는 것입니다. 또한 네이티브 OSX 버전을 엉망으로 만들고 싶지 않으면 아파치와 PHP가 별도로 제공 될 것입니다.

+0

네, 그냥 학습 경험을 위해 내 자신의 MySQL을 설치하고 싶었어요. 실제로 설치되었지만 어떤 이유로 작동하지 않습니다. – wbarksdale

+0

그래서 서버가 실행 중인지 확인하고 (Activity Monitor에서 'mysqld'프로세스를 찾은 다음) mysql 로그인 자격 증명과 데이터베이스 이름 (데이터베이스를 먼저 만들어야 함)으로 Cake를 설정한다. Cake의 db 설정은 app/config/database.php에 있습니다. – bfavaretto

관련 문제