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:
-
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
-
Se questa è la nuova installazione, prendi la password predefinita:
docker logs mysql57 2>&1 | grep GENERATED
-
Connettiti usando
mysql
client direttamente nella finestra mobile mysqld:docker exec -it mysql57 mysql -uroot -p
-
Se questa è la nuova installazione ti verrà chiesto di cambiare la password usando
ALTER USER
comando. Fallo. -
Esegui SQL:
update mysql.user set host = '%' where user='root';
-
Esci da
mysql
cliente. -
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 |
+-----------+---------------+