Я пытаюсь настроить phpMyAdmin для администрирования нескольких серверов MySQL из одного экземпляра. Я изменил образец конфигурации, который был включен в /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php (на сервере работает Debian 8)
$i=0; $hosts = array ( ["addr" => "server1.example.com", "name" => "Server One"], ["addr" => "server2.example.com", "name" => "Server Two"], ["addr" => "server3.example.com", "name" => "Server Three"], ); foreach ($hosts as $host) { $i++; $cfg['Servers'][$i]['verbose'] = $host["name"]; $cfg['Servers'][$i]['host'] = $host["addr"]; $cfg['Servers'][$i]['port'] = ''; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['compress'] = FALSE; $cfg['Servers'][$i]['controluser'] = $dbuser; $cfg['Servers'][$i]['controlpass'] = $dbpass; $cfg['Servers'][$i]['controlhost'] = 'localhost'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = ''; $cfg['Servers'][$i]['password'] = ''; $cfg['Servers'][$i]['only_db'] = ''; $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; }
Это работает как бы на странице входа и на левой панели после того, как я вошел в систему. У меня есть раскрывающийся список «Текущий сервер», где я могу выбрать свои серверы, однако, если из панели навигации я пытаюсь изменить серверы, меня перенаправляют на страницу входа в систему, и phpMyAdmin показывает ошибку «# 1045 Не удается войти на сервер MySQL». Обратите внимание, что имена пользователей и пароли одинаковы на каждом сервере. Если на новой странице входа я повторно ввожу имя пользователя / пароль, он нормально входит на этот сервер, однако переключение на предыдущий сервер вызывает ту же проблему.
Если я установлю $cfg['Servers'][$i]['auth_type'] = 'http'
похоже, это работает, хотя я больше не получаю нормальную страницу входа. Я предполагаю, что это связано с тем, что браузер просто воспроизводит логин каждый раз, когда я меняю сервер.
Есть ли способ добиться этого, сохраняя $cfg['Servers'][$i]['auth_type'] = 'cookie'
?
ОБНОВИТЬ После установки log_warnings = 2
на одном из серверов MySQL я вижу неудачные попытки входа в систему с тарабарщиной в имени пользователя, когда я пытаюсь переключить сервер.
Например, если phpMyAdmin работает на server1.example.com, и я вхожу на этот сервер MySQL, затем меняю на server2.example.com, в файле server2 /var/log/mysql/error.log я вижу
[Warning] Access denied for user '??<???!?'@'server1.example.com' (using password: YES)
Вместо myusername@'server1.example.com '