2017-02-12 267 views
0

我正在为我的PHP应用程序运行正式的MySQL Docker容器。我正在使用Phinx进行迁移。 MySQL映像似乎工作正常,因为我可以使用MySQL Workbench作为'dbuser'(非root)连接到它。我也可以连接Docker exec。在Docker容器上运行phinx命令时访问被拒绝

当我尝试运行任何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'@'%' 

development的phinx.yml文件的部分看起来像:

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

任何想法?

+0

为什么键入'* 8232A1298A49F710DBEE0B330C42EEC825D4190A'而不是'8232A1298A49F710DBEE0B330C42EEC825D4190A'?为什么额外的星号? –

+0

这就是字面意思 – maclonghorn

+0

显示什么人有任何想法? – maclonghorn

回答

0

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

相关问题