Intereting Posts

SQLSTATE Нет такого файла или каталога

Я пытаюсь запустить проект laravel на OS X. Я установил MySql с homebrew. Я пробовал поиск по Google, потому что я получаю эту ошибку:

SQLSTATE[HY000] [2002] No such file or directory 

когда я пытаюсь сделать

 php artisan migrate 

И большинство ответов, которые я вижу, говорят, что php и MySql не могут общаться друг с другом. Я пытался увидеть, где я поступил неправильно, так как я думаю, что я следил за предыдущими сообщениями об этом, и он все еще не работает. Я создал страницу, которая просто делает это:

 <?php phpinfo(); ?> 

И я вижу такие вещи: в области «Настройка» я вижу:

 '--with-mysql-sock=/tmp/mysql.sock' '--with-mysqli=mysqlnd' '--with-mysql=mysqlnd' '--with-pdo-mysql=mysqlnd' '--enable-pcntl' '--enable-zend-signals' '--enable-dtrace' 

загруженный файл конфигурации:

 /usr/local/etc/php/5.4/php.ini 

Если я ls /tmp , я вижу mysql.sock.

В этом файле php.ini я устанавливаю следующие строки: pdo_mysql.default_socket = / tmp / mysql.sock mysql.default_socket = /tmp/mysql.sock mysqli.default_socket = /tmp/mysql.sock

А затем в /usr/local/Cellar/mysql/5.6.16/my.cnf, я добавил следующую строку:

 socket = /tmp/mysql.sock 

Я перезапустил apache, а также проверил mysql. Я не видел никаких других советов, кроме соединения php и mysql. Я думаю, что есть две версии php в моей системе, потому что когда я установил mcrypt или что-то еще, что я не могу вспомнить, он установил другую версию php. Но когда я смотрю вывод phpinfo, я редактирую соответствующий файл php.ini. Я не знал, есть ли еще одна вещь, которую мне не хватает. Есть предположения? благодаря

Solutions Collecting From Web of "SQLSTATE Нет такого файла или каталога"

У меня была аналогичная ошибка. Я использую MAMP и то, что решило мою проблему:

  1. создание символической ссылки в: / var / mysql (создать каталог, если он не существует)
  2. cd / var / mysql && sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock

Для пользователей, которые ищут решение на XAMPP (протестировано и работает в Mac OS X),

Откройте терминал и создайте символическую ссылку:

 sudo mkdir /var/mysql cd /var/mysql sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock 

Другие решения, описанные здесь: http://pravams.com/2011/05/26/magento-pdo-exception/

После поиска я нашел этот пост:

Настройка Laravel на Mac php artisan Ошибка миграции: нет такого файла или каталога

Как только я добавил

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

к моему database.php в массиве mysql, он сработал. Не уверен точно, почему это работает, но это так.

Я нашел PHP на CentOS 6, построенном с mysql.default_socket=/var/lib/mysql/mysql.sock но по какой-то причине pdo_mysql.default_socket=/tmp/mysql.sock , которого не существует. Построение его с использованием --with-mysql-sock=/var/lib/mysql/mysql.sock должно заставлять обе быть одинаковыми.

Также можно изменить php.ini чтобы он содержал:

 pdo_mysql.default_socket="/var/lib/mysql/mysql.sock" 

… или ваше правильное расположение гнезда, конечно.

Я исправил его так. Просто добавьте строку. в проекте laravel APP => Config => database.php обновить
Соединения => mysql после строгого добавления ниже строки

 'unix_socket' => "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock" 

образец:-

 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'unix_socket' => "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock" ], 

Это случилось со мной из ниоткуда, мое приложение (Laravel) отлично работало вчера и сегодня ушло с этой ошибкой (SQLSTATE [HY000] [2002] Нет такого файла или каталога).

После проверки того, что мой файл конфигурации не был поврежден, я подключился к моей панели управления (я использую VPS) и перезапустил сервер MySQL. Это сделало трюк, все снова в сети.

Нашел решение для пользователя Ampps:
У меня была такая же проблема, и я много раз искал, но не смог решить проблему, пока не посмотрел на мой конфигурационный файл MySql. В моем конфигурационном файле сокет находился в строке 21, и путь был
"/Applications/AMPPS/var/mysql.sock"

В приложении Ampps нажмите вкладку MySql, а затем нажмите кнопку конфигурации.

Вы также можете найти файл конфигурации в папке «/ Applications / AMPPS / mysql / etc»

Так просто я добавил
'unix_socket' => '/Applications/AMPPS/var/mysql.sock',
к моему database.php в массиве mysql, и это сработало для меня.
После строки хоста. Я тестировал с localhost и 127.0.0.1, и оба работали
Надеюсь, он тоже работает на вас.