Symfony 4 Flex 数据库连接使用`urlencode`
问题:Symfony 4 Flex 数据库连接使用urlencode 我正在使用 Symfony 4 + Flex 开始一个新项目。此时我正在尝试将我的新应用程序连接到 MySQL 数据库。 我正在关注Symfony 文档,并且我已经将doctrine添加到我的依赖项中: composer require doctrine composer require maker --dev 然后我在.env
·
问题:Symfony 4 Flex 数据库连接使用urlencode
我正在使用 Symfony 4 + Flex 开始一个新项目。此时我正在尝试将我的新应用程序连接到 MySQL 数据库。
我正在关注Symfony 文档,并且我已经将doctrine
添加到我的依赖项中:
composer require doctrine
composer require maker --dev
然后我在.env
中定义的环境变量DATABASE_URL
中添加了数据库连接信息,如下所示:
###> doctrine/doctrine-bundle ###
DATABASE_URL=mysql://myUser:myPasswordWithSpecialChars@127.0.0.1:3306/myDbName
###< doctrine/doctrine-bundle ###
在这一点上,我面临一个问题:
DBAL异常
格式错误的参数“url”。
我认为这是因为我的 MySQL 密码使用了一些特殊字符。该文档正在谈论它:
如果用户名、密码或数据库名称包含在 URI 中被视为特殊的任何字符(例如 !、@、$、#),则必须对它们进行编码。有关保留字符的完整列表,请参阅 RFC 3986 或使用 urlencode 函数对其进行编码。
我真的不明白如何或在哪里使用urlencode函数,因为.env
文件不是 PHP 文件(如doctrine.yaml
)。
是否有人已经使用urlencode
函数对包含特殊字符的 MySQL 密码进行编码?
谢谢。
编辑
这是我的doctrine.yaml
文件:
parameters:
# Adds a fallback DATABASE_URL if the env var is not set.
# This allows you to run cache:warmup even if your
# environment variables are not available yet.
# You should not need to change this value.
env(DATABASE_URL): ''
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8
default_table_options:
charset: utf8
collate: utf8_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
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
我没有编辑数据库url参数,因为它已经在.env
中定义了。我对吗 ?
解答
尝试改变这一点:
url: '%env(resolve:DATABASE_URL)%'
对此:
url: '%env(DATABASE_URL)%'
更多推荐
已为社区贡献23584条内容
所有评论(0)