Я использую официальный контейнер MySQL Docker для моего приложения PHP. Я использую Phinx для миграции. Образ MySQL, кажется, работает нормально, так как я могу подключиться к нему как «dbuser» (без полномочий root), используя MySQL Workbench. Я также могу связаться с Docker Exec, а также.
Проблема возникает, когда я пытаюсь запустить любую команду Phinx, например, status. Я собираюсь:
[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'@'%'
мой development
раздел файла phinx.yml выглядит так:
development:
adapter: mysql
host: localhost
name: app_db
user: dbuser
pass: '<no-hash-password>'
port: 3306
charset: utf8
Есть идеи?
Решено: у меня на хосте также работает MySQL (другой порт 3307), поэтому я отключил его. Теперь я могу бегать phinx
внутри контейнера. Похоже, он пытался подключиться к хост-серверу через сокет Unix вместо порта 3306 на контейнере.
Других решений пока нет …