在谷歌搜索了使用 PHPMyAdmin 连接远程数据库的可能性后,我找到了这篇文章,它证实经过简单的配置编辑后就可以支持此功能。
在文章中,作者解释道:
文件 config.inc.php 包含 phpMyAdmin 安装的配置设置。它使用一个数组来存储它可以连接到的每个服务器的配置选项集,默认情况下只有一个服务器,即您自己的计算机或本地主机。为了连接到另一台服务器,您必须向配置数组添加另一组配置选项。一组配置选项看起来类似于以下内容:
$i++;
$cfg['Servers'][$i]['host'] = '';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'username';
$cfg['Servers'][$i]['password'] = 'password';
请注意,配置数组称为 cfg,它是一个多维数组,并且所有服务器都必须是 $cfg["Servers"] 内部数组的一部分。其工作方式是使用递增变量 $i,该变量为 $cfg["Servers"] 数组内的每个服务器设置不同的内部数组。要使其工作,您需要确保每组新的配置选项都以递增的 $i 开头,方法是使用 $i++。
然而,当我在 PHPMyAdmin 文件中浏览此文件时,我发现其内容与预期不同:
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Config file view and save screen
*
* @package PhpMyAdmin-Setup
*/
if (!defined('PHPMYADMIN')) {
exit;
}
/**
* Core libraries.
*/
require_once './libraries/config/FormDisplay.class.php';
require_once './setup/lib/index.lib.php';
require_once './setup/lib/ConfigGenerator.class.php';
$config_readable = false;
$config_writable = false;
$config_exists = false;
check_config_rw($config_readable, $config_writable, $config_exists);
?>
<h2><?php echo __('Configuration file') ?></h2>
<?php PMA_displayFormTop('config.php'); ?>
<input type="hidden" name="eol" value="<?php echo htmlspecialchars(PMA_ifSetOr($_GET['eol'], 'unix')) ?>" />
<?php PMA_displayFieldsetTop('', '', null, array('class' => 'simple')); ?>
<tr>
<td>
<textarea cols="50" rows="20" name="textconfig" id="textconfig" spellcheck="false"><?php
echo htmlspecialchars(ConfigGenerator::getConfigFile())
?></textarea>
</td>
</tr>
<tr>
<td class="lastrow" style="text-align: left">
<input type="submit" name="submit_download" value="<?php echo __('Download') ?>" class="green" />
<input type="submit" name="submit_save" value="<?php echo __('Save') ?>"<?php
if (!$config_writable) {
echo ' disabled="disabled"';
} ?> />
</td>
</tr>
<?php
PMA_displayFieldsetBottomSimple();
PMA_displayFormBottom();
?>
是否有人知道在较新版本的 PHPMyAdmin 中这些配置数据存储在哪里/如何存储以及如何编辑?
答案1
您正在读取错误目录中的文件。
设置存储config.inc.php
在根phpMyAdmin 的安装目录;例如/usr/share/webapps/phpMyAdmin/config.inc.php
。不要再深入挖掘了。
(您可以在此找到文件、、、config.sample.inc.php
等。)ChangeLog
favicon.ico
答案2
我发现了我的错误:
看起来这不是版本差异的问题,而是文件名重复的问题。指定的文件名实际上存在于 3 个或更多目录中。请确保使用在PHPMyAdmin 主目录。