2015-06-19 15 views
7

Ho riscontrato problemi nell'esecuzione dei comandi di avvio. Penso che sia correlato a mysql ma non ho trovato alcuna soluzione a questo errore su Stackoverflow. Questo è il mio app.php:SQLSTATE HY000 2002 durante il comando di avvio cottura

'Datasources' => [ 
     'default' => [ 
      'className' => 'Cake\Database\Connection', 
      'driver' => 'Cake\Database\Driver\Mysql', 
      'persistent' => false, 
      'host' => 'localhost', 

      //'port' => 'nonstandard_port_number', 
      'username' => 'root', 
      'password' => 'root', 
      'database' => 'laboiterose', 
      'encoding' => 'utf8', 
      'timezone' => 'UTC', 
      'cacheMetadata' => true, 

Please help, l'errore che ottengo è:

Exception: SQLSTATE[HY000] [2002] No such file or directory in [/Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php, line 48] 
2015-06-19 14:35:48 Error: [PDOException] SQLSTATE[HY000] [2002] No such file or directory 
Stack Trace: 
0 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php(48): PDO->__construct('mysql:host=loca...', 'root', 'root', Array) 
1 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Driver/Mysql.php(89): Cake\Database\Driver\Mysql->_connect('mysql:host=loca...', Array) 
2 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Schema/BaseSchema.php(46): Cake\Database\Driver\Mysql->connect() 
3 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Dialect/MysqlDialectTrait.php(62): Cake\Database\Schema\BaseSchema->__construct(Object(Cake\Database\Driver\Mysql)) 
4 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Schema/Collection.php(52): Cake\Database\Driver\Mysql->schemaDialect() 
5 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Schema/CachedCollection.php(44): Cake\Database\Schema\Collection->__construct(Object(Cake\Database\Connection)) 
6 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Connection.php(319): Cake\Database\Schema\CachedCollection->__construct(Object(Cake\Database\Connection), true) 
7 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(806): Cake\Database\Connection->schemaCollection() 
8 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(782): Bake\Shell\Task\ModelTask->_getAllTables() 
9 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(186): Bake\Shell\Task\ModelTask->listAll() 
10 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(109): Bake\Shell\Task\ModelTask->getAssociations(Object(Cake\ORM\Table)) 
11 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(95): Bake\Shell\Task\ModelTask->bake('Users') 
12 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/BakeShell.php(241): Bake\Shell\Task\ModelTask->main('Users') 
13 [internal function]: Bake\Shell\BakeShell->all('users') 
14 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Console/Shell.php(380): call_user_func_array(Array, Array) 
15 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Console/ShellDispatcher.php(204): Cake\Console\Shell->runCommand(Array, true) 
16 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Console/ShellDispatcher.php(175): Cake\Console\ShellDispatcher->_dispatch() 
17 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Console/ShellDispatcher.php(126): Cake\Console\ShellDispatcher->dispatch() 
18 /Applications/MAMP/htdocs/my_db/bin/cake.php(33): Cake\Console\ShellDispatcher::run(Array) 
19 {main} 
+0

possibile duplicato di [Cominciando con Zend Tutorial - Zend \ _db \ ​​_Adapter getta Eccezione: "SQLSTATE \ [HY000 \] \ [2002 \] Nessun file o directory "] (http://stackoverflow.com/questions/2412009/starting-with-zend-tutorial-zend-db-adapter-throws-exception-sqlstatehy000) – ndm

risposta

8

Problema risolto !! L'unica cosa che vorrei aggiungere è questa linea in .bash_profile per farlo funzionare:

export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH 
+1

Puoi spiega perché questo lo fa funzionare, perché ha funzionato per me.(Anche le persone dovrebbero riavviare Terminal dopo) – efwjames

+1

@liquified Cambia il percorso dall'installazione PHP predefinita che viene preinstallata da MAC OS X al percorso che porta all'installazione di PHP MAMP. – hardcodepunk

-2

può verificare che

'default' => [ 
     'className' => 'Cake\Database\Connection', 

     'driver' => 'Cake\Database\Driver\Mysql', 

     'persistent' => false, 

     'host' => 'localhost', 

     'username' => 'root', 

     'password' => '', 

     'database' => 'laboiterose', 

     'encoding' => 'utf8', 

     'timezone' => 'UTC', 

     'cacheMetadata' => true, 

     'quoteIdentifiers' => false, 

    ], 
5

primo luogo, permette di scoprire quale versione di PHP stiamo correndo (Per scoprire se è la versione di default).

Per fare che, all'interno del terminale, Fuoco questo comando:

which php 

Questo dovrebbe uscita il percorso del PHP installazione di default preinstallato da Mac OS X, per impostazione predefinita deve essere (supponendo 'non ve cambiato prima):

/usr/bin/php 

Ora, abbiamo solo bisogno di scambiare questo oltre al PHP che viene installato con MAMP, che si trova al /Applications/MAMP/bin/php/php7.0.0/ bin (MAMP 3.5)

Per fare ciò, dobbiamo modificare il profilo .bash e aggiungere la versione MAMP di PHP alla variabile PATH. Seguire questi semplici passi:

All'interno del Terminal, eseguire vim ~/.bash_profile

Tipo i e quindi incollare il seguente nella parte superiore del file:

export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH 

Hit ESC, Tipo :wq, e premere Invio

In Terminal, eseguire source ~/.bash_profile

In Terminale, digitare di nuovo which php e cercare la stringa aggiornata. Se tutto ha avuto successo, dovrebbe generare il nuovo percorso per l'installazione di PHP MAMP.

Nel caso in cui non venga emesso il percorso corretto, provare a chiudere la finestra del terminale (uscire completamente) e riaprire, dovrebbe applicare le modifiche (Riavvia in breve).

3

penso che questo sia il modo migliore:

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock', 

aggiungere questo nella configurazione del database di

+0

Per xampp, la stringa sarà qualcosa come ''unix_socket' => '/ opt/lampp/var/mysql/mysql.sock',' –

Problemi correlati