Saltar al contenido

[Docker]: La conexión de PHPMyAdmin a MySQL no funciona

Este post fue analizado por nuestros expertos así se asegura la exactitud de este ensayo.

Solución:

En lugar de iniciarlos uno por uno, use docker-compose.

Cree un archivo docker-compose.yml

version: '2'
services:
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw
    ports:
      # just if you also want to access it directly from you host
      # node neede for phpmyadmin
      - "3306:3306"
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - db
    ports:
      - "8080:8080"

Luego comience a usar docker-compose up en la misma carpeta tu docker-compose.yml se encuentra el archivo. Acceda a PHPmyadmin usando el navegador y use ‘db’ como el nombre de host de su base de datos, ya que ese es el nombre del servicio en el docker-compose.yml archivo y, por lo tanto, se puede resolver utilizando el servicio DNS interno de los acopladores a la IP real del contenedor acoplable. Todos los enlaces se configuran para usted automáticamente.

Eso es mucho más simple: la ejecución de la ventana acoplable complica demasiado las cosas y no es práctica para esas cosas, nunca.

Sugerencia: si docker-compose no está instalado en su máquina, instálelo usando estos documentos oficiales https://docs.docker.com/compose/install/ (fuera del alcance)

El archivo de configuración de phpmyadmin/phpmyadmin (/www/config.inc.php) dice por defecto el nombre de host del servidor de la base de datos si ‘db’:

$hosts = array(‘db’);

Entonces, si el contenedor del nombre de su base de datos no es ‘db’, debe agregar la variable de entorno PMA_HOST= (o PMA_HOSTS si hay varios servidores de db) con el nombre correcto (databaseContainer en su caso)

docker run --name db -e MYSQL_ROOT_PASSWORD=mypass -d mysql:5.7

docker run -p 80:80 --link db:mysql phpmyadmin/phpmyadmin

Intente ejecutar el comando anterior, funcionará, ya que phpmyadmin puede haber codificado en su implementación que el nombre del contenedor del servidor mysql sea db.

Si aún desea darle a su servidor de base de datos un nombre único, agregue PMA_HOST Variable ambiental:

docker run --name myadmin -d --link mysqlserver:mysql -p 8080:80 -e PMA_HOST=mysqlserver phpmyadmin/phpmyadmin

mysqlserver es el nombre que se le da a su servidor mysql db.

Agradecemos que desees añadir valor a nuestra información aportando tu experiencia en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *