如何在 phpMyAdmin 中维护多个主机的登录信息

如何在 phpMyAdmin 中维护多个主机的登录信息

我正在尝试设置 phpMyAdmin 以从单个实例管理多个 MySQL 服务器。我修改了 /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php 中包含的示例配置(服务器运行的是 Debian 8)

$i=0;
$hosts = 数组(
    ["addr" => "server1.example.com", "name" => "服务器一"],
    ["addr" => "server2.example.com", "name" => "服务器二"],
    ["addr" => "server3.example.com", "name" => "服务器三"],
(英文):

foreach ($hosts 作为 $host) {
    $i++;
    $cfg['服务器'][$i]['verbose'] = $host["name"];
    $cfg['服务器'][$i]['主机'] = $host["地址"];
    $cfg['服务器'][$i]['端口'] = '';
    $cfg['服务器'][$i]['套接字'] = '';
    $cfg['服务器'][$i]['connect_type'] = 'tcp';
    $cfg['服务器'][$i]['扩展'] = 'mysqli';
    $cfg['服务器'][$i]['压缩'] = FALSE;
    $cfg['服务器'][$i]['控制用户'] = $dbuser;
    $cfg['服务器'][$i]['controlpass'] = $dbpass;
    $cfg['服务器'][$i]['controlhost'] = 'localhost';
    $cfg['服务器'][$i]['auth_type'] = 'cookie';
    $cfg['服务器'][$i]['用户'] = '';
    $cfg['服务器'][$i]['密码'] = '';
    $cfg['服务器'][$i]['only_db'] = '';
    $cfg['服务器'][$i]['pmadb'] = 'phpmyadmin';
    $cfg['服务器'][$i]['bookmarktable'] = 'pma__bookmark';
    $cfg['服务器'][$i]['关系'] = 'pma__relation';
    $cfg['服务器'][$i]['table_info'] = 'pma__table_info';
    $cfg['服务器'][$i]['table_coords'] = 'pma__table_coords';
    $cfg['服务器'][$i]['pdf_pages'] = 'pma__pdf_pages';
    $cfg['服务器'][$i]['column_info'] = 'pma__column_info';
    $cfg['服务器'][$i]['history'] = 'pma__history';
    $cfg['服务器'][$i]['designer_coords'] = 'pma__designer_coords';
    $cfg['服务器'][$i]['recent'] = 'pma__recent';
    $cfg['服务器'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
    $cfg['服务器'][$i]['跟踪'] = 'pma__tracking';
    $cfg['服务器'][$i]['用户配置'] = 'pma__用户配置';
    $cfg['服务器'][$i]['用户'] = 'pma__users';
    $cfg['服务器'][$i]['用户组'] = 'pma__usergroups';
    $cfg['服务器'][$i]['navigationhiding'] = 'pma__navigationhiding';
    $cfg['服务器'][$i]['savedsearches'] = 'pma__savedsearches';
}

这有点管用,在登录页面和登录后的左侧窗格中,我有一个“当前服务器”下拉菜单,我可以在里面选择我的服务器,但是如果我从导航窗格尝试更改服务器,我会被重定向到登录页面,phpMyAdmin 会显示“#1045 无法登录 MySQL 服务器”错误。请注意,每个服务器上的用户名和密码都相同。如果我在新的登录页面上重新输入用户名/密码,它可以正常登录到该服务器,但是切换回上一个服务器会产生同样的问题。

如果我设置了$cfg['Servers'][$i]['auth_type'] = 'http'它,它似乎可以工作,尽管我不再获得正常的登录页面。我认为这是因为每次我更换服务器时浏览器都会重新播放登录。

有没有办法在保持的同时实现这一目标$cfg['Servers'][$i]['auth_type'] = 'cookie'

更新 在其中一个 MySQL 服务器上进行设置后,log_warnings = 2当我尝试切换服务器时,我看到使用乱码用户名的登录尝试失败。

例如,如果 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'

相关内容