Respuestas:
Simplemente agregue las siguientes líneas a su /etc/phpmyadmin/config.inc.php
archivo en la parte inferior:
$i++;
$cfg['Servers'][$i]['host'] = 'HostName:port'; //provide hostname and port if other than default
$cfg['Servers'][$i]['user'] = 'userName'; //user name for your remote server
$cfg['Servers'][$i]['password'] = 'Password'; //password
$cfg['Servers'][$i]['auth_type'] = 'config'; // keep it as config
. Obtendrá el menú desplegable “Servidor actual:” con “127.0.0.1” y uno que proporcionó con el conmutador de leva “$ cfg ['Servidores'] [$ i] ['host']” entre los servidores.
más detalles: http://sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/
$i++
es un punto importante ya que esto no nos hará perder la conexión de la base de datos con el valor predeterminado localhost
.
/etc/phpmyadmin/config.inc.php
es el archivo correcto que se cambiará
config.inc.php
archivo se encuentra en el Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php
archivo.
Ciertamente es posible acceder a un servidor MySQL remoto desde una instancia local de phpMyAdmin, como lo han señalado las otras respuestas. Y para que eso funcione, debe configurar el servidor MySQL del servidor remoto para aceptar conexiones remotas y permitir el tráfico a través del firewall para el número de puerto que MySQL está escuchando. Prefiero una solución ligeramente diferente que implica el túnel SSH .
El siguiente comando configurará un túnel SSH que reenviará todas las solicitudes realizadas al puerto 3307 desde su máquina local al puerto 3306 en la máquina remota:
ssh -NL 3307:localhost:3306 root@REMOTE_HOST
Cuando se le solicite, debe ingresar la contraseña para el usuario root en la máquina remota. Esto abrirá el túnel. Si desea ejecutar esto en segundo plano, deberá agregar el -f
argumento y configurar SSH sin contraseña entre su máquina local y la máquina remota.
Una vez que tenga el túnel SSH funcionando, puede agregar el servidor remoto a la lista de servidores en su phpMyAdmin local modificando el /etc/phpmyadmin/config.inc.php
archivo. Agregue lo siguiente al final del archivo:
$cfg['Servers'][$i]['verbose'] = 'Remote Server 1';// Change this to whatever you like.
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '3307';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$i++;
Escribí una publicación de blog más detallada sobre exactamente esto, en caso de que necesite ayuda adicional.
$++
definitivamente debería ser la primera línea, no la última, al menos para mi phpmyadmin.conf predeterminado.
Se puede hacer, pero necesita cambiar la configuración de phpMyAdmin, lea esta publicación: http://www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin
Si por alguna razón el enlace muere, puede seguir los siguientes pasos:
config.inc.php
$cfg['Servers'][$i]['host']
variable y configúrela en la IP o el nombre de host de su servidor remoto$cfg['Servers'][$i]['port']
variable y configúrela en el puerto remoto de mysql. Por lo general esto es3306
$cfg['Servers'][$i]['user']
y $cfg['Servers'][$i]['password']
las variables y establecer de inmediato a su nombre de usuario y contraseña para el servidor remotoSin la configuración adecuada del servidor, la conexión puede ser más lenta que una conexión local, por ejemplo, probablemente sería un poco más rápido usar direcciones IP en lugar de nombres de host para evitar que el servidor tenga que buscar la dirección IP desde el nombre de host.
Además, recuerde que el nombre de usuario y la contraseña de su base de datos remota se almacenan en texto sin formato cuando se conecta de esta manera, por lo que debe tomar medidas para asegurarse de que nadie pueda acceder a este archivo de configuración. Alternativamente, puede dejar las variables de nombre de usuario y contraseña vacías para que se les solicite ingresarlas cada vez que inicie sesión, lo que es mucho más seguro.
Sigue esta publicación de blog. Puedes hacerlo muy fácilmente. https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/
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. Tienes que editar este archivo de configuración.
Primero abra el archivo config.inc.php que se encuentra en la carpeta phpMyAdmin . En el servidor wamp , puede encontrarlo en la carpeta wamp \ apps \ phpmyadmin . Luego agregue la siguiente parte a ese archivo.
$i++;
$cfg['Servers'][$i]['host'] = 'hostname/Ip Adress';
$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';
Veamos cuál es el significado de estas variables.
$i++ :- Incrementing variable for each server
$cfg[‘Servers’][$i][‘host’] :- Server host name or IP adress
$cfg[‘Servers’][$i][‘port’] :- MySQL port (Leave a blank for default port. Default MySQL port is 3306)
$cfg[‘Servers’][$i][‘socket’] :- Path to the socket (Leave a blank for default socket)
$cfg[‘Servers’][$i][‘connect_type’] :- How to connect to MySQL server (‘tcp’ or ‘socket’)
$cfg[‘Servers’][$i][‘extension’] :- php MySQL extension to use (‘mysql’ or ‘msqli’)
$cfg[‘Servers’][$i][‘compress’] :- Use compressed protocol for the MySQL connection (requires PHP >= 4.3.0)
$cfg[‘Servers’][$i][‘auth_type’] :- Method of Authentication
$cfg[‘Servers’][$i][‘username’] :- Username to the MySQL database in remote server
$cfg[‘Servers’][$i][‘password’] :- Password to the MySQL database int he remote server
Después de agregar esta parte de configuración, reinicie su servidor y ahora su página de inicio de phpMyAdmin cambiará y mostrará un campo para seleccionar el servidor.
Ahora puede seleccionar su servidor y acceder a su base de datos remota ingresando nombre de usuario y contraseña para esa base de datos.
Como se indicó en la respuesta c.hill answer, si desea una solución segura le aconsejaría que abra un túnel SSH en su servidor.
Aquí está la forma de hacerlo para los usuarios de Windows :
Descargue Plink and Putty del sitio web de Putty y coloque los archivos en la carpeta que elija (en mi ejemplo C:\Putty
)
Abra la consola de Windows y cd en la carpeta Plink:
cd C:\Putty
Abra el túnel SSH y redirija al puerto 3307:
plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk
Dónde:
Finalmente puedes configurar PhpMyAdmin:
Líneas para agregar:
$i++;
$cfg['Servers'][$i]['verbose'] = 'Remote Dev server';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3307';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
http://127.0.0.1/phpmyadmin
Si no desea abrir la consola cada vez que necesite conectarse a su servidor remoto, simplemente cree un archivo por lotes (guardando las 2 líneas de comando en un archivo .bat).
Hubiera agregado esto como un comentario, pero mi reputación aún no es lo suficientemente alta.
Bajo la versión 4.5.4.1deb2ubuntu2, y supongo que cualquier otra versión 4.5.xo posterior. No hay necesidad de modificar el archivo config.inc.php en absoluto. En su lugar, vaya un directorio más hacia abajo conf.d.
Cree un nuevo archivo con la extensión '.php' y agregue las líneas. Este es un enfoque modularizado mejor y aísla la información de acceso a cada servidor de base de datos remoto.
En Ubuntu
Solo necesita modificar un solo archivo en la carpeta PHPMyAdmin, es decir, "config.inc.php". Simplemente agregue las líneas siguientes a su "config.inc.php".
Ubicación del archivo: /var/lib/phpmyadmin/config.inc.php
O
/etc/phpmyadmin/config.inc.php
Tal vez no tienes el permiso para editar ese archivo, solo da el permiso usando este comando
sudo chmod 777 /var/lib/phpmyadmin/config.inc.php
O (en diferentes sistemas puede que tenga que consultar con estas dos ubicaciones)
sudo chmod 777 /etc/phpmyadmin/config.inc.php
Luego copie y pegue el código en su config.inc.php
archivo
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'Database Server 2';
$cfg['Servers'][$i]['host'] = '34.12.123.31';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
Y realice los cambios apropiados con los detalles de su servidor
Método 1 (para multiservidor)
Primero, hagamos una copia de seguridad de la configuración original.
sudo cp /etc/phpmyadmin/config.inc.php ~/
Ahora en / usr / share / doc / phpmyadmin / examples / verá un archivo config.manyhosts.inc.php . Simplemente copie a / etc / phpmyadmin / usando el siguiente comando:
sudo cp /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php \
/etc/phpmyadmin/config.inc.php
Edite el config.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
Buscar :
$hosts = array (
"foo.example.com",
"bar.example.com",
"baz.example.com",
"quux.example.com",
);
Y agregue su guardado de matriz de IP o nombre de host (en nano CTRL + X presione Y) y salga. Hecho
Método 2 (servidor único) Edite el config.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
Buscar :
/* Server parameters */
if (empty($dbserver)) $dbserver = 'localhost';
$cfg['Servers'][$i]['host'] = $dbserver;
if (!empty($dbport) || $dbserver != 'localhost') {
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['port'] = $dbport;
}
Y reemplazar con:
$cfg['Servers'][$i]['host'] = '192.168.1.100';
$cfg['Servers'][$i]['port'] = '3306';
Recuerde reemplazar 192.168.1.100 con su propio servidor ip mysql.
Perdón por mi mal inglés (el traductor de Google tiene la culpa: D)
Mientras lo pruebo, encuentro el archivo config.default.php
entonces busca $ cfg ['AllowArbitraryServer'] = falso;
luego configúrelo como verdadero
nota: en ubuntu el archivo en la ruta /usr/share/phpmyadmin/libraries/config.default.php
luego encontrará un nuevo SERVER de nombre archivado en la página principal de PHPMyAdmin, puede agregarle cualquier IP o host local para la base de datos local.
En Windows con el servidor Wamp instalado, puede encontrar el archivo de configuración
C:\wamp64\apps\phpmyadmin4.8.4\config.inc.php
Cambie la línea de bolow según corresponda
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = 3306;//$wampConf['mysqlPortUsed'];
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';
Eliminar entradas completas de /etc/http/conf.d/phpMyAdmin.conf
Y abajo entra en el archivo de arriba,
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
#ADD following line:
Require all granted
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
#CHANGE following 2 lines:
Order Allow,Deny
Allow from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
Luego,
ejecutar debajo del comando en el indicador de MySQL,
GRANT ALL ON *.* to root@localhost IDENTIFIED BY 'root@<password>'
GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'root@<password>'
Como referencia: permitir que IP acceda a PhpMyAdmin seguro
phpmyadmin
imagen del acoplador localmente y conectarse a su servidor MySQL remoto. más detalles aquí :docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin