когда я использую терминал git в Windows и пытаюсь запустить «php artisan migrate» для миграции моих таблиц, я получаю эту ошибку:
1 PDOException::("could not find driver")
Но когда я вхожу через ssh в свой виртуальный ящик «vagrant ssh», он отлично работает, когда я перехожу в папку сайта и запускаю «php artisan migrate».
По какой причине это происходит? Как я могу это исправить?
Полное сообщение об ошибке:
$ php artisan migrate
Illuminate\Database\QueryException : could not find driver (SQL: select * fr
om information_schema.tables where table_schema = aff and table_name = migration
s)
at C:\Users\jarro\Documents\sites\aff\vendor\laravel\framework\src\Illuminate\
Database\Connection.php:664
660| // If an exception occurs when attempting to run a query, we'll
format the error
661| // message to include the bindings with SQL, which will make th
is exception a
662| // lot more helpful to the developer instead of just the databa
se's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1 PDOException::("could not find driver")
C:\Users\jarro\Documents\sites\aff\vendor\laravel\framework\src\Illuminate
\Database\Connectors\Connector.php:68
2 PDO::__construct("mysql:host=192.168.10.10;port=3306;dbname=aff", "homeste
ad", "secret", [])
C:\Users\jarro\Documents\sites\aff\vendor\laravel\framework\src\Illuminate
\Database\Connectors\Connector.php:68
Please use the argument -v to see more details.
Вы проверяли php -m
на наличие расширения pdo_mysql
?
@Spholt да, у меня установлены усилители. ampps.com поставляется с MySQL. Мне нужно удалить это и попробовать снова?
@mim. php -m
предоставляет PDO как одну из опций, так что я предполагаю, что он установлен!
Можете ли вы подключиться к своей базе данных через командную строку, используя учетные данные, указанные в исключении? (host=192.168.10.10;port=3306;dbname=aff
). Коробка твоей усадьбы работает?
когда вы используете php artisan migrate
или seed, вам нужно зайти внутрь терминала виртуальной машины Hometead и запустить эти команды, иначе он не удастся, потому что он найдет виртуальную машину mysql, а не ваши окна mysql
homestead ssh
cd Code/yourapp
php artisan migrate
или php artisan db:seed
Я предполагаю, что у вас есть как navicat или любой просмотрщик баз данных, который может получить доступ к вашей виртуальной машине mysql, чтобы отслеживать, работают ли ваши команды или нет.
Я собираюсь начать так: D Спасибо за вашу поддержку
Я обнаружил, что это работает лучше. Хотя вы можете делать то, что сказал Уинстон (помечен как правильный ответ) после некоторого времени, я удалил Ampps, загрузил Xampp, переустановил composer и поместил путь php exe в xampp. Теперь я могу делать все на своем локальном компьютере, а не на виртуальной машине.
Просто подумал, что брошу это сюда! : D
У меня была такая же проблема, это из-за неправильного хоста db в файле /.env:
DB_HOST=127.0.0.1
Установите его на свой бродячий хост (для меня homestead.test):
DB_HOST=homestead.test
Ожидается, что вы сопоставили его с файлом хостов Windows:
192.168.10.10 homestead.test
Попробуйте уничтожить Vagrant Virtual Machine, затем снова запустите Vagrant. Это воссоздает вашу виртуальную машину Vagrant.
Выполните эти команды с терминала в папке Homestead, где находится файл Vagrant.
Команды:
vagrant destroy --force
vagrant up
У вас установлен
mysql
на вашем локальном компьютере?