XAMPP 上的 Symfony 4 - make:migration 不工作,找不到驱动程序
Symfony 4 on XAMPP - make:migration does't work, could not find driver
警告:请稍候,然后再将其标记为重复,这里有很多类似的问题,但对我没有任何帮助。
我开始学习 php 框架 Symfony,我在实体和迁移方面遇到了一些问题。当我尝试在我的 git 布什上 运行 命令 bin/console make:migration
时,它给了我这些错误:
In AbstractMySQLDriver.php line 106:
An exception occurred in driver: could not find driver
In PDOConnection.php line 31:
could not find driver
In PDOConnection.php line 27:
could not find driver
我正在使用 Symfony 4。我的 PC 是 Windows 10,代码是 运行ning 在使用 XAMPP 制作的 Apache 服务器中。数据库是本地的(总是用 XAMPP 创建)并且是 MySQL(服务器 MariaDB 10.4.6)。PHP 版本是 7.3.9。
这是我的 .env Symfony 文件:
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=b9c673023606f26343aee9c3d24a8aba
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS='^localhost|example\.com$'
###< symfony/framework-bundle ###
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=mysql://root@localhost:3306/symfony
###< doctrine/doctrine-bundle ###
###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
# Delivery is disabled by default via "null://localhost"
MAILER_URL=null://localhost
###< symfony/swiftmailer-bundle ###
这是我的 doctrine.yaml:
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
在这个文件中,我尝试用 php_pdo_mysql
更改驱动程序(在 c:\xampp\php\ext
中我有一个同名文件)、字符集、数据库版本(在 mariadb-10.4.6
中)但没有任何改变。
在我的 php.ini 中(c:\xampp\php
中的一次)我已经删除了 extension=pdo_mysql
处的分号,但没有任何改变。
我也尝试过卸载并重新安装 doctrine,创建一个新项目,在线搜索某种 "mysql drivers"(也许我搜索了错误的东西)以及卸载并重新- 安装整个 xampp.
没有任何效果。
我该如何解决这个问题?
似乎您没有在 xampp 中使用 php.ini,而是 C:\Program Files (x86)\php\php.ini
您的 php.ini 尝试在 C:\Program Files (x86)\php\php.ini 中搜索设置
您的电脑上是否安装了 php 的另一个实例?
可能在 PATH 环境中 php.exe 路径不在 xampp 的文件夹中
您可以尝试从 C:\Program Files (x86)\php\php.ini 中删除分号到 pdo_mysql 并且应该可以解决您的问题
但更好的解决方案是修复 windows 中的 PATH 环境以在 c:\xampp\php
中搜索 php.exe
警告:请稍候,然后再将其标记为重复,这里有很多类似的问题,但对我没有任何帮助。
我开始学习 php 框架 Symfony,我在实体和迁移方面遇到了一些问题。当我尝试在我的 git 布什上 运行 命令 bin/console make:migration
时,它给了我这些错误:
In AbstractMySQLDriver.php line 106:
An exception occurred in driver: could not find driver
In PDOConnection.php line 31:
could not find driver
In PDOConnection.php line 27:
could not find driver
我正在使用 Symfony 4。我的 PC 是 Windows 10,代码是 运行ning 在使用 XAMPP 制作的 Apache 服务器中。数据库是本地的(总是用 XAMPP 创建)并且是 MySQL(服务器 MariaDB 10.4.6)。PHP 版本是 7.3.9。
这是我的 .env Symfony 文件:
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=b9c673023606f26343aee9c3d24a8aba
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS='^localhost|example\.com$'
###< symfony/framework-bundle ###
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=mysql://root@localhost:3306/symfony
###< doctrine/doctrine-bundle ###
###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
# Delivery is disabled by default via "null://localhost"
MAILER_URL=null://localhost
###< symfony/swiftmailer-bundle ###
这是我的 doctrine.yaml:
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
在这个文件中,我尝试用 php_pdo_mysql
更改驱动程序(在 c:\xampp\php\ext
中我有一个同名文件)、字符集、数据库版本(在 mariadb-10.4.6
中)但没有任何改变。
在我的 php.ini 中(c:\xampp\php
中的一次)我已经删除了 extension=pdo_mysql
处的分号,但没有任何改变。
我也尝试过卸载并重新安装 doctrine,创建一个新项目,在线搜索某种 "mysql drivers"(也许我搜索了错误的东西)以及卸载并重新- 安装整个 xampp.
没有任何效果。
我该如何解决这个问题?
似乎您没有在 xampp 中使用 php.ini,而是 C:\Program Files (x86)\php\php.ini 您的 php.ini 尝试在 C:\Program Files (x86)\php\php.ini 中搜索设置 您的电脑上是否安装了 php 的另一个实例? 可能在 PATH 环境中 php.exe 路径不在 xampp 的文件夹中 您可以尝试从 C:\Program Files (x86)\php\php.ini 中删除分号到 pdo_mysql 并且应该可以解决您的问题 但更好的解决方案是修复 windows 中的 PATH 环境以在 c:\xampp\php
中搜索 php.exe