Ошибка исключения PDO в индексе
Неустранимая ошибка: Неперехваченное исключение "Исключение Pdo" с сообщением "SQLSTATE[HY000] [2002] Нет такого файла или каталога" в lib/Zend/Db/Adapter/Pdo/Abstract.php:129
Я получаю следующую ошибку на своем локальном компьютере. (Mac OSX работает под управлением Apache/MySQL изначально) Я могу запустить Magento с внешнего интерфейса, но я не могу переиндексировать по команде.
3 answers
Просто предположение, но это звучит как
Ваш исполняемый файл php командной строки использует файл
php.ini
, отличный от файла веб-сервераФайл
php.ini
, используемый вашей версией командной строки, имеет другое и недопустимое значение, установленное для параметра mysql.default_socket ini
Когда вы указываете хост сервера MySQL как localhost
, вы указываете системе использовать этот файл сокета для подключения к серверу базы данных. Проверьте значение при использовании вашего локальный веб-сервер и убедитесь, что такое же значение установлено для файла программы командной строки ini
.
Возможно, вам также повезет, если вы измените сервер на 127.0.0.1
с localhost
. (Когда система видит IP-адрес, она знает, что не подключаться через файл сокета, а вместо этого подключаться через TCP)
Вот несколько решений для изменения сокета на сервере:
Http://pravams.com/2011/05/26/magento-pdo-exception/
И если у вас возникнет проблема с MAMP/XAMPP, откройте терминал для создания символической ссылки (это было мое решение, протестированное на MAC OS X):
МАМП:
sudo mkdir /var/mysql
cd /var/mysql
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock
XAMPP (ХАМПП):
sudo mkdir /var/mysql
cd /var/mysql
sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
В моем случае ошибка была в настройках Mamp. Запустите сервер Apache/MySQL как www, а не как пользователь. Как только я изменил это, я смог запускать сценарии оболочки в оболочке/каталоге без каких-либо ошибок