我正在尝试设置 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'