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

时间:2017-02-12 13:32:32

标签: php mysql docker docker-compose phinx

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

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

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

我对DB的授权看起来像:

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

解决了问题:我也在主机上运行了MySQL(不同的端口3307),所以我把它关闭了。我现在能够在容器中运行phinx。看起来它可能一直试图通过unix socket连接到主机服务器,而不是容器上的端口3306。