tabla - ingresar a mysql por consola linux
Ejecute el comando mysql desde el host al contenedor que ejecuta el servidor mysql (4)
Para conectarse a la base de datos MySQL utilizando el cliente de línea de comandos de MySQL.
Me conecto al bash en el contenedor MySQL en ejecución:
$ docker exec -t -i
container_mysql_name
/bin/bash
-i
es el acceso directo para la opción--interactive
. Esta opción se usa para mantener STDIN abierto incluso si no está conectado-t
es el acceso directo a la opción--tty
, que se utiliza para asignar un pseudo-TTYEjecuto el cliente MySQL desde bash MySQL container:
$ mysql -uroot -proot
-u
es el acceso directo para la opción--user=name
, que se utiliza para definir al usuario para iniciar sesión si no es el usuario actual.-p
es el acceso directo a la opción-password[=name]
, que se utiliza para definir la contraseña que se usará al conectarse al servidor. Si no se da la contraseña se le pide al tty.
He seguido la instrucción https://registry.hub.docker.com/_/mysql/ para extraer una imagen y ejecutar un contenedor en el que se ejecuta un servidor mysql. El contenedor se está ejecutando en segundo plano y yo ejecutaría algunos comandos. ¿Cuál es la mejor manera de conectarse al contenedor y ejecutar este comando desde la línea de comandos?
En mi caso la solución <<<
no funcionó.
En su lugar usé -e
.
Ejemplo:
docker exec ${CONTAINER_NAME} mysql -u ${USER_NAME} -p${PASSWORD} -e "drop schema test; create schema test;"
Puedes conectarte a tu contenedor mysql y ejecutar tus comandos usando:
docker exec -it mysql bash -l
(Donde mysql
es el nombre que le diste al contenedor)
Tenga en cuenta que cualquier cosa que haga no persistirá la próxima vez que ejecute un contenedor desde la misma imagen.
docker exec -i some_mysql_container mysql -uroot -ppassword <<< "select database();"