Doctrine2 (Symfony4) 数据库连接 url 通过套接字
Doctrine2 (Symfony4) database connection url over socket
我很难让数据库连接与 Symfony4 w/doctrine2 中使用的 mysql url 格式一起工作。
这是我正在尝试做的事情:
mysql://dbusername:dbpassword@unix_socket(/path/to/socket)/dbname
我做错了什么?请指教。 Doctrine2 文档对于通过套接字进行连接的格式并不清楚。
- 配置
.env
:
DATABASE_URL=mysql://root:root@127.0.0.1:3306/database_name
- 运行 在你的项目根目录下命令创建数据库:
php bin/console doctrine:database:create
- 运行 创建模式的命令,如果您生成实体:
php bin/console doctrine:schema:create
- 运行 用于更新基于您的实体的架构的命令:
php bin/console doctrine:schema:update --force
我在尝试将 google 云平台 SQL 用于需要使用本地 unix 套接字的 mysql 时也遇到了这个问题。
URL的每一部分都不是强制的,它的形式是:
<type>://[user[:password]@][host][:port][/db][?param_1=value_1¶m_2=value_2...]
所以对于mysql unix套接字,如果你需要指定用户和密码,你可以这样做:
mysql://user:password@127.0.0.1/db_name/?unix_socket=/path/to/socket
127.0.0.1 部分将被忽略。
您可以通过 parse_url
函数(由 doctrine 内部使用)来测试它是否正常工作:
php > var_dump(parse_url("mysql://user:password@127.0.0.1/db_name/?unix_socket=/path/to/socket"));
php shell code:1:
array(6) {
'scheme' =>
string(5) "mysql"
'host' =>
string(9) "127.0.0.1"
'user' =>
string(4) "user"
'pass' =>
string(8) "password"
'path' =>
string(9) "/db_name/"
'query' =>
string(27) "unix_socket=/path/to/socket"
}
我很难让数据库连接与 Symfony4 w/doctrine2 中使用的 mysql url 格式一起工作。
这是我正在尝试做的事情:
mysql://dbusername:dbpassword@unix_socket(/path/to/socket)/dbname
我做错了什么?请指教。 Doctrine2 文档对于通过套接字进行连接的格式并不清楚。
- 配置
.env
:
DATABASE_URL=mysql://root:root@127.0.0.1:3306/database_name
- 运行 在你的项目根目录下命令创建数据库:
php bin/console doctrine:database:create
- 运行 创建模式的命令,如果您生成实体:
php bin/console doctrine:schema:create
- 运行 用于更新基于您的实体的架构的命令:
php bin/console doctrine:schema:update --force
我在尝试将 google 云平台 SQL 用于需要使用本地 unix 套接字的 mysql 时也遇到了这个问题。
URL的每一部分都不是强制的,它的形式是:
<type>://[user[:password]@][host][:port][/db][?param_1=value_1¶m_2=value_2...]
所以对于mysql unix套接字,如果你需要指定用户和密码,你可以这样做:
mysql://user:password@127.0.0.1/db_name/?unix_socket=/path/to/socket
127.0.0.1 部分将被忽略。
您可以通过 parse_url
函数(由 doctrine 内部使用)来测试它是否正常工作:
php > var_dump(parse_url("mysql://user:password@127.0.0.1/db_name/?unix_socket=/path/to/socket"));
php shell code:1:
array(6) {
'scheme' =>
string(5) "mysql"
'host' =>
string(9) "127.0.0.1"
'user' =>
string(4) "user"
'pass' =>
string(8) "password"
'path' =>
string(9) "/db_name/"
'query' =>
string(27) "unix_socket=/path/to/socket"
}