Я не знаю, почему, когда я запускаю тест PHPUnit, я получаю следующую ошибку:
PDOException: SQLSTATE [HY000] [2002] Нет такого файла или каталога
Моя настройка базы данных среды тестирования:
return [
'fetch' => PDO::FETCH_CLASS,
'default' => 'mysql',
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'clg_test',
'username' => 'root',
'password' => 'veryHardPass',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]
],
'migrations' => 'migrations',
];
Причина, по которой я использую MySQL вместо SQLite, заключается в том, что мои файлы миграции используют dropColumn
который не поддерживается SQLite. Я называю миграцию через Artisan::call('migrate')
в настройке.
Если я на самом деле вызвать миграцию вручную в терминале через php artisan migrate --env=testing
затем миграция прошла успешно и базы данных созданы.
Почему я тогда сталкиваюсь с вышеуказанной проблемой?
Попробуйте изменить localhost
в 127.0.0.1
, Получаемое сообщение указывает на то, что скрипт не может подключиться к MySQL через сокет, но должен работать ip.
Других решений пока нет …