在 Docker 容器上执行 运行 phinx 命令时访问被拒绝

Access denied when running phinx command on Docker container

我正在 运行 为我的 PHP 应用安装官方 MySQL Docker 容器。我正在使用 Phinx 进行迁移。 MySQL 图像似乎工作正常,因为我可以使用 MySQL Workbench 作为 'dbuser'(非 root)连接到它。我也可以连接 Docker exec。

当我尝试 运行 任何 Phinx 命令(例如状态)时出现问题。我得到:

[InvalidArgumentException]
There was a problem connecting to the database: SQLSTATE[HY000][1045] Access denied for user 'dbuser'@'localhost' (using password: YES)

我对数据库的资助如下:

GRANT USAGE ON *.* TO 'dbuser'@'%' IDENTIFIED BY PASSWORD '*8232A1298A49F710DBEE0B330C42EEC825D4190A'
GRANT ALL PRIVILEGES ON `dbuser`.* TO 'app_db'@'%'

我的 phinx.yml 文件的 development 部分如下所示:

development:
    adapter: mysql
    host: localhost
    name: app_db
    user: dbuser
    pass: '<no-hash-password>'
    port: 3306
    charset: utf8

有什么想法吗?

已解决:我在主机上也有 MySQL 运行ning(不同的端口 3307),所以我将其关闭。我现在可以在容器内 运行 phinx。看起来它可能一直在尝试通过 unix 套接字而不是容器上的端口 3306 连接到主机服务器。