#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 )