Yii 在OS X上使用带AMPS的YIC

Yii 在OS X上使用带AMPS的YIC,yii,Yii,我试图在iMac上使用yic shell和yic migrate工具,但似乎遇到了一些困难。我认为这可能是因为我使用AMPPS作为开发服务器,而不是单独安装Apache/PHP/MySQL。例如,在我的项目中,我有一个名为project的模型,它对应于MySQL数据库中名为tbl_project的表。我可以使用以下命令调用yic shell: ./yiic shell /Applications/AMPPS/www/TrackStar/protected/config/main.php 但是,

我试图在iMac上使用yic shell和yic migrate工具,但似乎遇到了一些困难。我认为这可能是因为我使用AMPPS作为开发服务器,而不是单独安装Apache/PHP/MySQL。例如,在我的项目中,我有一个名为project的模型,它对应于MySQL数据库中名为tbl_project的表。我可以使用以下命令调用yic shell:

./yiic shell /Applications/AMPPS/www/TrackStar/protected/config/main.php
但是,当我跑步时:

var_dump(Project::model()->findAll('id = 1'));
我收到一条冗长的错误消息:

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}
我认为这可能是因为它试图通过

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',
),

有人能帮忙吗?我在尝试使用迁移功能时也遇到了同样的问题。

我认为您应该定义到套接字的正确路径

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

我认为您应该定义到套接字的正确路径

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

我不知道这是否有区别,但我已经在Applications/AMPPS/YiiRoot/framework中将Yii framework文件夹一个目录放在了Applications/AMPPS/YiiRoot/framework中我的/www文件夹的上方,我不知道这是否有区别,但在检查phpinfo之后,我已经将Yii framework文件夹一个目录放在Applications/AMPPS/YiiRoot/framework中我的/www文件夹的上方;我发现在pdo_mysql部分下,我的路径是/Applications/AMPPS/mysql/tmp/mysql.sock,将我的连接字符串更正为mysql:host=localhost;dbname=trackstar;unix_socket=/Applications/AMPPS/mysql/tmp/mysql.sock允许我正确使用yic shell和yic迁移。谢谢@wonde的建议:我会投票支持你的答案,但我需要15个代表>;我发现在pdo_mysql部分下,我的路径是/Applications/AMPPS/mysql/tmp/mysql.sock,将我的连接字符串更正为mysql:host=localhost;dbname=trackstar;unix_socket=/Applications/AMPPS/mysql/tmp/mysql.sock允许我正确使用yic shell和yic迁移。谢谢你的建议@wonde:我会投票支持你的答案,但我需要15次>。