我正在运行我的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
有什么想法吗?
答案 0 :(得分:0)
解决了问题:我也在主机上运行了MySQL(不同的端口3307),所以我把它关闭了。我现在能够在容器中运行phinx
。看起来它可能一直试图通过unix socket连接到主机服务器,而不是容器上的端口3306。