Laravel php artisan命令,指定mysql端口
Laravel php artisan command, to specify the mysql port
在我的 Laravel 数据库配置中。
'mysql' => [
'driver' => 'mysql',
'read' => [
'host' => [env('DB_READ_HOST', env('DB_HOST') )]
],
'write' => [
'host' => env('DB_HOST', 'localhost')
],
'port' => env('DB_PORT', '3306'),
我连接到端口 3306 上的 mysql。
但是在 docker-compose.yml 中,我们告诉 mysql 连接到 3307 端口。 Laravel 网站在端口 3307 上连接到 mysql 正常。
mysql:
image: 'mysql'
container_name: api_mysql
restart: always
volumes:
- /var/lib/mysql
ports:
- "3307:3306"
networks:
- api
我也可以通过命令行从主机的 3307 端口连接到 mysql。
mysql -u web -P3307 -h 127.0.0.1 -p
但是当我运行phpartisan命令时
php artisan getData
来自主机(不是 docker)
我收到错误消息
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
这意味着当我从主机上 运行 php artisan 时,我有 mysql 连接问题。
我想是因为我 运行
php artisan getData
我在docker-compose.yml中设置的端口变化,php artisan不知道。
php artisan getData
仍会尝试连接到 3306 上的 mysql,这将导致错误。
那我怎么运行
php artisan getData
并告诉它使用端口 3307 进行 mysql 连接?
谢谢!
MySQL 在主机的端口 3307 上可用。当您在主机上执行 运行 artisan
命令时,您需要它们使用此端口,这意味着您需要更新配置。您可以尝试在主机上设置 DB_PORT
环境变量,以便在命令为 运行 时使用不同的端口。在执行 artisan 命令之前,只需 运行 在您的终端中输入以下内容:
export DB_PORT=3307
此变量仅在托管计算机中可见,因此不会破坏托管环境中的任何内容。
我建议不要在托管和托管机器上使用 运行ning artisan 命令 - 你为什么要这样做?
在我的 Laravel 数据库配置中。
'mysql' => [
'driver' => 'mysql',
'read' => [
'host' => [env('DB_READ_HOST', env('DB_HOST') )]
],
'write' => [
'host' => env('DB_HOST', 'localhost')
],
'port' => env('DB_PORT', '3306'),
我连接到端口 3306 上的 mysql。
但是在 docker-compose.yml 中,我们告诉 mysql 连接到 3307 端口。 Laravel 网站在端口 3307 上连接到 mysql 正常。
mysql:
image: 'mysql'
container_name: api_mysql
restart: always
volumes:
- /var/lib/mysql
ports:
- "3307:3306"
networks:
- api
我也可以通过命令行从主机的 3307 端口连接到 mysql。
mysql -u web -P3307 -h 127.0.0.1 -p
但是当我运行phpartisan命令时
php artisan getData
来自主机(不是 docker)
我收到错误消息
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
这意味着当我从主机上 运行 php artisan 时,我有 mysql 连接问题。
我想是因为我 运行
php artisan getData
我在docker-compose.yml中设置的端口变化,php artisan不知道。
php artisan getData
仍会尝试连接到 3306 上的 mysql,这将导致错误。
那我怎么运行
php artisan getData
并告诉它使用端口 3307 进行 mysql 连接?
谢谢!
MySQL 在主机的端口 3307 上可用。当您在主机上执行 运行 artisan
命令时,您需要它们使用此端口,这意味着您需要更新配置。您可以尝试在主机上设置 DB_PORT
环境变量,以便在命令为 运行 时使用不同的端口。在执行 artisan 命令之前,只需 运行 在您的终端中输入以下内容:
export DB_PORT=3307
此变量仅在托管计算机中可见,因此不会破坏托管环境中的任何内容。
我建议不要在托管和托管机器上使用 运行ning artisan 命令 - 你为什么要这样做?