2013-01-10 1 views
2

iMac에서 yiic 셸 및 yiic 마이그레이션 도구를 사용하려고하지만 일부 어려움이있는 것 같습니다. 내가 아파치/PHP/MySQL을 별도로 설치하는 대신 개발 서버로 AMPPS를 사용하고 있기 때문일 수도 있습니다. 예를 들어, 내 프로젝트에서 Project이라는 모델이 내 MySQL 데이터베이스에있는 테이블 tbl_project에 해당합니다. 내가 사용 yiic 쉘을 호출 할 수 있습니다OS X에서 AMPPS와 함께 Yiic 사용

./yiic shell /Applications/AMPPS/www/TrackStar/protected/config/main.php 

을하지만, 내가 실행하면

Warning: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Applications/AMPPS/YiiRoot/framework/db/CDbConnection.php on line 423 
exception 'CDbException' with message 'CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] No such file or directory' in /Applications/AMPPS/YiiRoot/framework/db/CDbConnection.php:381 
Stack trace: 
#0 /Applications/AMPPS/YiiRoot/framework/db/CDbConnection.php(330): CDbConnection->open() 
#1 /Applications/AMPPS/YiiRoot/framework/db/CDbConnection.php(308): CDbConnection-> setActive(true) 
#2 /Applications/AMPPS/YiiRoot/framework/base/CModule.php(387): CDbConnection->init() 
#3 /Applications/AMPPS/YiiRoot/framework/base/CModule.php(103): CModule->getComponent('db') 
#4 /Applications/AMPPS/YiiRoot/framework/cli/commands/ShellCommand.php(131) : eval()'d code(1): CModule->__get('db') 
#5 /Applications/AMPPS/YiiRoot/framework/cli/commands/ShellCommand.php(131): eval() 
#6 /Applications/AMPPS/YiiRoot/framework/cli/commands/ShellCommand.php(99): ShellCommand->runShell() 
#7 /Applications/AMPPS/YiiRoot/framework/console/CConsoleCommandRunner.php(67): ShellCommand->run(Array) 
#8 /Applications/AMPPS/YiiRoot/framework/console/CConsoleApplication.php(91): CConsoleCommandRunner->run(Array) 
#9 /Applications/AMPPS/YiiRoot/framework/base/CApplication.php(169): CConsoleApplication->processRequest() 
#10 /Applications/AMPPS/YiiRoot/framework/yiic.php(33): CApplication->run() 
#11 /Applications/AMPPS/www/TrackStar/protected/yiic.php(7): require_once('/Applications/A...') 
#12 /Applications/AMPPS/www/TrackStar/protected/yiic(4): require_once('/Applications/A...') 
#13 {main} 

내가이기 때문에 그것은 아마 생각 :

var_dump(Project::model()->findAll('id = 1')); 

내가이 긴 오류 메시지가 연결 시도 중

unix:///var/mysql/mysql.sock 

내 MySQL 쉘이있는 곳이 아닙니다. config/main.php와 config/console.php를 다음과 같이 구성했습니다 :

'db'=>array(
    'connectionString' => 'mysql:host=localhost;dbname=trackstar', 
    'emulatePrepare' => true, 
    'username' => 'root', 
    'password' => 'mysql', 
    'charset' => 'utf8', 
), 

아무도 도와 줄 수 있습니까? 마이그레이션 기능을 사용하려고 할 때도 동일한 문제가 발생합니다.

+0

이 차이가 있는지 잘 모르겠지만, 내가 응용 프로그램 내/www가 폴더 위의 YII 프레임 워크 폴더 하나의 디렉토리에 놓여있다/AMPPS/YiiRoot/framework – Iain

답변

4

난 당신이 소켓에 올바른 경로를 정의해야한다고 생각

connectionString=>msql:host=localhost;dbname=trackstar;unix_socket=socket/path', 
+0

phpinfo()를 확인한 후; pdo_mysql 섹션에서 내 경로가 /Applications/AMPPS/mysql/tmp/mysql.sock임을 확인했습니다. 내 연결 문자열을 으로 수정했습니다. mysql : host = localhost; dbname = trackstar; unix_socket =/Applications/AMPPS/mysql/tmp /mysql.sock Yiic 쉘을 사용하고 Yiic을 올바르게 마이그레이션 할 수있었습니다. 조언을 주셔서 감사합니다 @ 웡 :) 나는 당신의 답변을 투표 할 것이지만 분명히 15 명이 필요합니다. << – Iain