Mysql
 sql >> Database >  >> RDS >> Mysql

Come collegare mysql workbench all'esecuzione di mysql all'interno della finestra mobile?

Per impostazione predefinita, dopo la distribuzione MySQL ha le seguenti restrizioni di connessione:

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)

Apparentemente, per motivi di sicurezza non sarai in grado di connetterti al di fuori dell'immagine della finestra mobile. Se hai bisogno di cambiarlo per consentire a root di connettersi da qualsiasi host (ad esempio, per scopi di sviluppo), fai:

  1. Avvia la tua immagine mysql con tutte le mappature delle porte richieste:

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

oppure, se è richiesta la mappatura completa delle porte:

docker run -p 3306:3306 -p 33060:33060 --name=mysql57 -d mysql/mysql-server:5.7
  1. Se questa è la nuova installazione, prendi la password predefinita:

    docker logs mysql57 2>&1 | grep GENERATED

  2. Connettiti usando mysql client direttamente nella finestra mobile mysqld:

    docker exec -it mysql57 mysql -uroot -p

  3. Se questa è la nuova installazione ti verrà chiesto di cambiare la password usando ALTER USER comando. Fallo.

  4. Esegui SQL:

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

  5. Esci da mysql cliente.

  6. Riavvia il contenitore:

    docker restart mysql57

Ora sarai in grado di connetterti da MySQL Workbench a

host: `0.0.0.0` 
port: `3306`

Dopo tutte le modifiche, la query mostrerà:

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