2

iMac で yiic シェルと yiic 移行ツールを使用しようとしていますが、問題が発生しているようです。Apache/PHP/MySQL を個別にインストールするのではなく、開発サーバーとして AMPPS を使用していることが原因である可能性があります。たとえば、私のプロジェクトではProject、MySQL データベース内の という名前のテーブルに対応するという名前のモデルがありますtbl_project。以下を使用して yiic シェルを呼び出すことができます。

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

誰でも助けることができますか?移行機能を使用しようとすると、同じ問題が発生します。

4

1 に答える 1

4

ソケットへの正しいパスを定義する必要があると思います

connectionString=>msql:host=localhost;dbname=trackstar;unix_socket=socket/path',
于 2013-01-10T22:44:30.483 に答える