Я пытаюсь запустить проект laravel на OS X. Я установил MySql с homebrew. Я попробовал поискать, почему я получаю эту ошибку:
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. Я не знал, есть ли еще одна вещь, которую мне не хватает. Есть предположения? Благодаря
После поиска я нашел этот пост:
Настройка Laravel при ошибке переноса mac php artisan: нет такого файла или каталога
Как только я добавил
'unix_socket' => '/tmp/mysql.sock’,
к моему database.php в массиве mysql, он сработал. Не уверен точно, почему это работает, но это так.
У меня была аналогичная ошибка. Я использую MAMP и то, что решило мою проблему:
Для пользователей, которые ищут решение на 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/
SQLSTATE[HY000] [2002] Connection refused
. Я использую тонкий php framework, xampp на Mac OS. Есть идеи, чтобы это исправить?
Я нашел 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"
... или ваше правильное расположение гнезда, конечно.
i исправил это так. Просто добавьте строку. в проекте 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"
],
Найден решение для пользователя 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, и оба работали
Надеюсь, он тоже работает для вас.
Это случилось со мной из ниоткуда, мое приложение (Laravel) вчера отлично работало и сегодня ушло с этой ошибкой (SQLSTATE [HY000] [2002] Нет такого файла или каталога).
После проверки того, что мой файл конфигурации не был поврежден, я подключился к моей панели управления (я использую VPS) и перезапустил сервер MySQL. Это сделало трюк, все снова в сети.