2017-02-12 5 views
0

Я запускаю официальный контейнер MySQL Docker для своего PHP-приложения. Я использую Phinx для миграции. Образ MySQL работает нормально, поскольку я могу подключиться к нему как «dbuser» (не root) с помощью MySQL Workbench. Я также могу подключиться к Docker exec.Доступ запрещен при запуске команды phinx на контейнере Docker

Проблема возникает, когда я пытаюсь запустить любую команду 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'@'%' 

Мой 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 на контейнере.

Смежные вопросы