sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo conectar mysql workbench para ejecutar mysql dentro de la ventana acoplable?

De forma predeterminada, después de la implementación, MySQL tiene las siguientes restricciones de conexión:

mysql> select host, user from mysql.user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | healthchecker |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
4 rows in set (0.00 sec)

Aparentemente, por motivos de seguridad, no podrá conectarse a él fuera de la imagen de la ventana acoplable. Si necesita cambiar eso para permitir que la raíz se conecte desde cualquier host (por ejemplo, con fines de desarrollo), haga lo siguiente:

  1. Inicie su imagen mysql con todas las asignaciones de puertos requeridas:

    docker run -p 3306:3306 --name=mysql57 -d mysql/mysql-server:5.7

o, si se requiere el mapeo de puertos completo:

docker run -p 3306:3306 -p 33060:33060 --name=mysql57 -d mysql/mysql-server:5.7
  1. Si esta es la instalación nueva, tome la contraseña predeterminada:

    docker logs mysql57 2>&1 | grep GENERATED

  2. Conéctate usando mysql cliente directamente a mysqld en docker:

    docker exec -it mysql57 mysql -uroot -p

  3. Si esta es la instalación nueva, se le pedirá que cambie la contraseña usando ALTER USER dominio. Hazlo.

  4. Ejecutar SQL:

    update mysql.user set host = '%' where user='root';

  5. Salga de mysql cliente.

  6. Reinicie el contenedor:

    docker restart mysql57

Ahora podrá conectarse desde MySQL Workbench a

host: `0.0.0.0` 
port: `3306`

Después de todos los cambios, la consulta mostrará:

select host, user from mysql.user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | root          |
| localhost | healthchecker |
| localhost | mysql.session |
| localhost | mysql.sys     |
+-----------+---------------+