2015-06-19 14 views
7

Mam problem z uruchomieniem komend bake. Myślę, że jest to związane z mysql, ale nie znalazłem żadnego rozwiązania tego błędu na Stackoverflow. To jest mój app.php:SQLSTATE HY000 2002 podczas uruchamiania komendy bake

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

Proszę o pomoc, błąd pojawia się, jest:

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

możliwe duplikat [Zaczynając z Zend Tutorial - Zend \ _DB \ _Adapter zgłasza wyjątek: „SQLSTATE \ [HY000 \] \ [2002 \] Brak takiego pliku lub katalogu "] (http://stackoverflow.com/questions/2412009/starting-with-zend-tutorial-zend-db-adapter-throws-exception-sqlstatehy000) – ndm

Odpowiedz

8

Problem rozwiązany !! Jedyną rzeczą, jaką należy dodać, jest to linia w bash_profile aby to działało:

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

Czy możesz wyjaśnij, dlaczego to działa, ponieważ zadziałało dla mnie.(Również ludzie powinni zrestartować Terminal po) – efwjames

+1

@liquified Zmienia ścieżkę z domyślnej instalacji PHP, która jest fabrycznie zainstalowana przez MAC OS X do ścieżki, która prowadzi do instalacji MAMP PHP. – hardcodepunk

-2

może testować że

'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

pierwsze, pozwala dowiedzieć się, jaka wersja PHP mamy do biegania (Aby dowiedzieć się, czy jest to wersja domyślna).

Aby to zrobić, że w terminalu, Ogień to polecenie:

which php 

ta powinna wyjście ścieżka do domyślnej instalacji PHP, który jest z preinstalowanym przez Mac OS X, domyślnie ma być (zakładając, że „nie zmienił go już wcześniej):

/usr/bin/php 

teraz wystarczy zamienić to nad do PHP, który jest zainstalowany z MAMP, który znajduje się w /Applications/MAMP/bin/php/php7.0.0/ bin (MAMP 3.5)

Aby to zrobić, musimy edytować plik .bash_profile i dodać wersję PHP MAMP do zmiennej PATH. Wykonaj te proste kroki:

wewnątrz terminalu, uruchom vim ~/.bash_profile

Rodzaj i a następnie wklej następujący tekst w górnej części pliku:

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

Hit ESC, Typ :wq i naciśnij Enter

W terminalu, uruchom source ~/.bash_profile

W Terminalu ponownie wpisz which php i wyszukaj zaktualizowany ciąg. Jeśli wszystko przebiegło pomyślnie, powinna wypisać nową ścieżkę do instalacji MAMP PHP.

Jeśli nie wyświetli się poprawna ścieżka, spróbuj zamknąć okno terminalu (wyjdź całkowicie) i otwórz ponownie, powinna zastosować zmiany (Restart w skrócie).

3

myślę, że to jest najlepszy sposób:

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

dodać to w konfiguracji bazy

+0

W przypadku xampp ciąg będzie podobny do 'unix_socket '=>'/opt/lampp/var/mysql/mysql.sock ',' –

Powiązane problemy