Hay varias maneras de acceder a mysql y te lo explico en las siguientes lineas...
Una vez que ya has inicializado el contenedor de postgres
puedes acceder al contenedor con el siguiente comando
docker-compose exec postgres bash
Dentro del contenedor debes cambiar al usuario postgres
y luego ejecutar el psql
root@7ee91da1f0a3:/ mysql -u root -proot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 8.0.0-dmr MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql
Conectarse a mysql desde consola con tu Ip
mysql -h 127.0.0.1 -u root -p
mysql -h 192.168.1.52 -u root -proot
mysql -h 192.168.1.52 -u dev -p123456
Si desea hacer una inicialización de nuevas bases de datos adicionales en el contenedor de mysql, agregue uno o más scripts .sh en el directorio postgres/sql/
(creando el directorio si es necesario). Cuando ejecutes el comando
docker-compose down
docker-compose build
docker ejecutará cualquier script .sh que se encuentre en ese directorio para realizar una inicialización posterior antes de iniciar el servicio.
Por ejemplo, para agregar un usuario adicional y una base de datos, añada lo siguiente a en el directorio mysql/sql/init-proyecto-db.sh
:
#!/bin/bash
set -e
mysql -u root -p"$MYSQL_ROOT_PASSWORD" << EOF
DROP USER IF EXISTS user_demo;
CREATE USER 'user_demo'@'%';
CREATE DATABASE IF NOT EXISTS demo_inicial;
GRANT ALL ON demo_inicial.* TO 'user_demo'@'%' IDENTIFIED BY '123456';
EOF
Estos archivos de inicialización se ejecutarán en orden de nombres ordenados según lo definido por la configuración regional actual, cuyo valor predeterminado es en_US.utf8. Cualquier archivo .sh será ejecutado por root
, que por defecto es el superusuario root. Se recomienda que cualquier comando mysql que se ejecute dentro de una secuencia de comandos .sh se ejecute como root utilizando los parametro -u root -p"$MYSQL_ROOT_PASSWORD"
.
Puedes ver más configuración en la documentación oficial de Docker MySql
Cuando vuelvas a levantar el contenedor podrás ver las bases de datos.
docker-compose up -d mysql
Info: cada vez que ejecutas el comando docker-compose build
los contenedores vuelven a su estado inicial borrando cualquier configuración extra y sus datos.
Para realizar backup de todas las bases de datos:
MySql
mkdir -p $(pwd)/data/mysql/backup && docker exec dockbox_mysql_1 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > $(pwd)/data/mysql/backup/all-databases.sql
MariaDb
mkdir -p $(pwd)/data/mariadb/backup && docker exec dockbox_mariadb_1 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > $(pwd)/data/mariadb/backup/all-databases.sql
Ahora puedes encontrar un fichero llamado all-databases.sql
en el directorio dockbox/data/mysql/backup/
o dockbox/data/mariadb/backup
.
Si necesitas añadir alguna configuración en mysql, no es necesario entrar al contenedor, puedes hacer cualquier ajustes que necesites en my.cnf
en el directorio mysql
, para que estos cambios apliquen debes ejecutar
docker-compose down
docker-compose build
docker-compose up -d mysql
database_host: 192.168.1.52 <-- tu ip address local
database_port: 3306
database_name: landing_viewer_dev
database_user: root
database_password: root
DB_CONNECTION=mysql
DB_HOST=mysql
DB_DATABASE=demo
DB_USERNAME=root
DB_PASSWORD=root
$config = [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;dbname=demo',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
];
Puedes administrar tus bases de datos con tu software preferido. Te recomiendo utilizar tu ipaddress como host.
PHPMyAdmin
Antes de acceder a la ruta http://localhost:8081 asegurate de haber levantado el contenedor de phpmyadmin, o levantarlo ejecutando:
docker-compose up -d phpmyadmin
El campo servidor
dejar en blanco.