Configurar PHPMyAdmin para conectarse a la base de datos remota


0

Después de buscar en Google la posibilidad de usar PHPMyAdmin para conectarse a bases de datos remotas, encontré este artículo, que confirma que esto es compatible después de una simple edición de configuración.

En el artículo, el autor explica:

El archivo config.inc.php contiene los ajustes de configuración para su instalación phpMyAdmin. Utiliza una matriz para almacenar conjuntos de opciones de configuración para cada servidor al que puede conectarse y, de forma predeterminada, solo hay uno, su propia máquina o localhost. Para conectarse a otro servidor, tendría que agregar otro conjunto de opciones de configuración a la matriz de configuración. Un conjunto de opciones de configuración se vería similar a esto:

$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';

Tenga en cuenta que la matriz de configuración se llama cfg y que es una matriz multidimensional y que todos los servidores deben formar parte de la matriz interna $ cfg ["Servidores"]. La forma en que esto funciona es mediante el uso de una variable incremental $ i que establece una matriz interna diferente para cada servidor dentro de la matriz $ cfg ["Servidores"]. Para que esto funcione, debe asegurarse de que cada nuevo conjunto de opciones de configuración comience con un incremento de $ i usando $ i ++.

Sin embargo, cuando busqué este archivo en mis archivos PHPMyAdmin, encontré que su contenido era diferente de lo esperado:

<?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();
?>

¿Alguien sabe dónde / cómo, en las versiones más recientes de PHPMyAdmin, estos datos de configuración se almacenan y pueden editarse?


Un blog detallado: goo.gl/FZ6nqD
Suresh Kamrushi

Respuestas:


0

Estás leyendo un archivo en el directorio incorrecto.

La configuración se almacena en config.inc.phpla raíz del directorio de instalación de phpMyAdmin; por ej /usr/share/webapps/phpMyAdmin/config.inc.php. No cavar más profundo que eso.

(Es el mismo lugar donde se puede encontrar archivos config.sample.inc.php, ChangeLog, favicon.ico, y tal.)


Sí. Acabo de descubrir eso, gracias. Nombres de archivos duplicados difíciles ... De todos modos, ¡aceptaré esto cuando se acabe el tiempo!

Mirando esto, es una forma muy extraña, aunque creativa, de construir una configuración.

Una vez que actualicé la configuración, obtuve la opción de conectarme a la base de datos remota como se esperaba, sin embargo, phpMyAdmin parece estar tratando de usar la contraseña 'SÍ' en lugar de la que se proporciona en la configuración. ¿Podría echar un vistazo a la configuración actualizada de mi error? gist.github.com/jt0dd/11314779

@ jt0dd: los mensajes de error de MySQL nunca mostrarán la contraseña real. Simplemente le dicen si se utilizó una contraseña para ese intento de conexión. Es más probable que la contraseña en sí sea incorrecta o que la cuenta MySQL no permita conexiones desde su dirección [es decir, la de PMA]. (Todas las cuentas MySQL tienen la forma de "usuario" @ "dirección de origen", no solo "usuario", por lo que root @ localhost puede iniciar sesión solo a través del socket Unix, y root@10.0.0.2 puede iniciar sesión desde la dirección IPv4 10.0.0.2 y así sucesivamente.)
Grawity

Ah, ya veo. Ese es mi problema. Dado que solo se ingresa 'usuario' al tratar con mysql desde la consola, no me di cuenta de que el nombre de usuario toma ese formato.

0

He descubierto mi error:

Parece que esto no es un problema de diferencia de versión, sino de duplicados de nombre de archivo. El nombre de archivo especificado realmente existe en 3 o más directorios. Asegúrese de utilizar el que se encuentra en el directorio principal de PHPMyAdmin .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.