Ниже приведена нижеприведенная ошибка при запуске моей пользовательской команды yiic
в терминале.
Я не могу понять причину этой ошибки, может ли кто-нибудь указать мне в правильном направлении. Я знаю, что БД работает нормально, так как другие части приложения работают.
<?php class RbacCommand extends CConsoleCommand { private $_authManager; public function getHelp() { return "<<<EOD USAGE rbac DESCRIPTION This command generates an initial RBAC authorization hierarchy. EOD"; } public function run($args) { if(($this->_authManager=Yii::app()->authManager)===null) { echo "Error: an authorization manager, named 'authManager' must be configured to use this command.\n"; echo "If you already added 'authManager' component in applicaton configuration,\n"; echo "please quit and re-enter the yiic shell.\n"; return; } echo "This command will create three roles: Owner, Member, and Reader and the following permissions:\n"; echo "create, read, update and delete user\n"; echo "create, read, update and delete project\n"; echo "create, read, update and delete issue\n"; echo "Would you like to continue? [Yes|No]"; if(!strncasecmp(trim(fgets(STDIN)),'y',1)) { $this->_authManager->clearAll(); $this->_authManager->createOperation("createUser","create a new user"); $this->_authManager->createOperation("readUser","read user profile information"); $this->_authManager->createOperation("updateUser","update a users information"); $this->_authManager->createOperation("deleteUser","remove a user from a project"); $this->_authManager->createOperation("createProject","create a new project"); $this->_authManager->createOperation("readProject","read project information"); $this->_authManager->createOperation("updateProject","update project information"); $this->_authManager->createOperation("deleteProject","delete a project"); $this->_authManager->createOperation("createIssue","create a new issue"); $this->_authManager->createOperation("readIssue","read issue information"); $this->_authManager->createOperation("updateIssue","update issue information"); $this->_authManager->createOperation("deleteIssue","delete a issue"); $role=$this->_authManager->createRole("member"); $role->addChild("reader"); $role->addChild("createIssue"); $role->addChild("updateIssue"); $role->addChild("deleteIssue"); $role=$this->_authManager->createRole("owner"); $role->addChild("reader"); $role->addChild("member"); $role->addChild("createUser"); $role->addChild("updateUser"); $role->addChild("deleteUser"); $role->addChild("createProject"); $role->addChild("updateProject"); $role->addChild("deleteProject"); } } } ?> users-MacBook-Air:protected user$ ./yiic shell ../index.php Yii Interactive Tool v1.1 (based on Yii v1.1.2) Please type 'help' for help. Type 'exit' to quit. >> rbac Warning: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/user/Dropbox/localhost/yii/framework/db/CDbConnection.php on line 302 exception 'CDbException' with message 'CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] No such file or directory' in /Users/user/Dropbox/localhost/yii/framework/db/CDbConnection.php:267 Stack trace: #0 /Users/user/Dropbox/localhost/yii/framework/db/CDbConnection.php(242): CDbConnection->open() #1 /Users/user/Dropbox/localhost/yii/framework/db/CDbConnection.php(221): CDbConnection->setActive(true) #2 /Users/user/Dropbox/localhost/yii/framework/base/CModule.php(363): CDbConnection->init() #3 /Users/user/Dropbox/localhost/yii/framework/web/auth/CDbAuthManager.php(570): CModule->getComponent('db') #4 /Users/user/Dropbox/localhost/yii/framework/web/auth/CDbAuthManager.php(69): CDbAuthManager->getDbConnection() #5 /Users/user/Dropbox/localhost/yii/framework/base/CModule.php(363): CDbAuthManager->init() #6 /Users/user/Dropbox/localhost/yii/framework/base/CModule.php(86): CModule->getComponent('authManager') #7 /Users/user/Dropbox/localhost/trackstar/protected/commands/shell/RbacCommand.php(22): CModule->__get('authManager') #8 /Users/user/Dropbox/localhost/yii/framework/cli/commands/ShellCommand.php(144): RbacCommand->run(Array) #9 /Users/user/Dropbox/localhost/yii/framework/cli/commands/ShellCommand.php(99): ShellCommand->runShell() #10 /Users/user/Dropbox/localhost/yii/framework/console/CConsoleCommandRunner.php(62): ShellCommand->run(Array) #11 /Users/user/Dropbox/localhost/yii/framework/console/CConsoleApplication.php(88): CConsoleCommandRunner->run(Array) #12 /Users/user/Dropbox/localhost/yii/framework/base/CApplication.php(135): CConsoleApplication->processRequest() #13 /Users/user/Dropbox/localhost/yii/framework/yiic.php(33): CApplication->run() #14 /Users/user/Dropbox/localhost/trackstar/protected/yiic.php(7): require_once('/Users/user/Dro...') #15 /Users/user/Dropbox/localhost/trackstar/protected/yiic(4): require_once('/Users/user/Dro...') #16 {main} >>
Пытаться:
Измените localhost
на 127.0.0.1
в строке подключения.
ИЛИ:
Добавьте unix_socket=/path/to/socket
в строку подключения.
По умолчанию Yii использует разные файлы конфигурации в protected/config/
:
main.php
для Интернета, console.php
для CLI, test.php
для (единичных) тестов. Возможно, вы сконфигурировали ваше соединение с DB в main.php
но забыли сделать это в console.php
.