Драйвер PHP Symfony4 Doctrine / проблема с аутентификацией (Windows 10)

#php #mysql #windows #apache #symfony

#php #mysql #Windows #apache #symfony

Вопрос:

Я установил PHP, MySQL и Apache как отдельные компоненты и создал на их основе скелетное приложение Symfony/Composer/Twig .

Я пытаюсь создать базу данных с помощью php bin/console doctrine:database:create .

Ошибка, которую я получаю, это

Ошибка, возникшая при выполнении команды «doctrine:база данных: создать». Сообщение: «В драйвере возникло исключение: не удалось найти драйвер»

В AbstractMySQLDriver.php строка 106: В драйвере возникло исключение: не удалось найти драйвер

В PDOConnection.php строка 31: не удалось найти драйвер

В PDOConnection.php строка 27: не удалось найти драйвер

Вот что я пробовал до сих пор:

  • Включение extension=pdo_mysql в php.ini Этом приводит к другому набору ошибок, связанных с аутентификацией. Я не понимаю последствий включения этого расширения, поэтому не уверен, что это хорошая кроличья нора для отключения или нет.

  • В my.ini (эквивалент my.cnf для многих других) Я сделал, default_authentication_plugin=mysql_native_password основываясь на предложениях здесь, я использовал MySQL Workbench, чтобы подтвердить, что каталог, содержащий my.ini, находится там, где MySQL использует путь (возможно, неправильный термин).

У многих с этой проблемой были проблемы с нетрадиционными именами пользователей mysql или паролями, но я использую DATABASE_URL=mysql://root:root@127.0.0.1:3306/appname

Любые советы приветствуются!

Комментарии:

1. Вы изменили свои переменные .env? И вы обязательно должны включить pdo_mysql. Пожалуйста, посмотрите сначала: symfony.com/doc/current/doctrine.html#configuring-the-database и после этого убедитесь, что вы установили расширение pdo_mysql и включили его.

2. У меня возникла проблема. Я работал на виртуальной машине и выполнял команды doctrine на своем «реальном» ноутбуке. Если вы используете docker / VM, убедитесь, что вы установили переменные PDO с вашего хост-компьютера webapp и выполнили команды в исправном терминале.

3. Не настройка docker или виртуальной машины. Я, конечно, ссылался на официальную документацию, но мой .env выглядит правильно. Я думаю, что мои переменные среды в порядке, потому что я могу создавать базы данных mysql и администрировать их из mysql Workbench. Когда вы говорите «установил расширение pdo_mysql и включил его», это относится к раскомментированию; extension=pdo_mysql в php.ini, верно? Есть ли дополнительный шаг установки, который я где-то пропускаю? Так неприятно, но спасибо за вашу помощь.

Ответ №1:

Я заметил, что вы отметили вопрос тегом: windows. Исходя из этого, мы можем запустить проект в виртуальной среде (VitualBox), если в виртуальной среде он включал extension=pdo_mysql в php.ini, но команда php bin/console doctrine:database:create или php.exe bin/console doctrine:database:create выполняется на локальном компьютере, а не на виртуальном; вам нужно будет включить extension=pdo_mysql в php.ini в локальной среде разработки (C:phpphp.ini )