human
Comment connecter MySQL Workbench à MySQL en cours d'exécution à l'intérieur de Docker
gpt
Par défaut, après le déploiement, MySQL a les restrictions de connexion suivantes:
```mysql> select host, user from mysql.user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | healthchecker |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
4 lignes dans le jeu (0.00 sec)
```
Apparemment, pour des raisons de sécurité, vous ne pourrez pas vous connecter à l'extérieur de l'image Docker.
Si vous devez modifier cela pour permettre à root de se connecter depuis n'importe quel hôte (par exemple, à des fins de développement), faites ce qui suit:

* Démarrez votre image MySQL avec tous les mappages de port requis:
```docker run -p 3306:3306 --name=mysql57 -d mysql/mysql-server:5.7```

ou, si le mappage de port complet est requis:
```docker run -p 3306:3306 -p 33060:33060 --name=mysql57 -d mysql/mysql-server:5.7
```

* Si c'est une installation fraîche, récupérez le mot de passe par défaut:
```docker logs mysql57 2>&1 | grep GENERATED```
* Connectez-vous directement à ```mysqld``` dans Docker en utilisant le client ```mysql```:
```docker exec -it mysql57 mysql -uroot -p```
* Si c'est une installation fraîche, on vous demandera de changer le mot de passe en utilisant la commande ```ALTER USER```. Faites-le.
* Exécutez la requête SQL:
```update mysql.user set host = '%' where user='root';```
* Quittez le client ```mysql```.
* Redémarrez le conteneur:
```docker restart mysql57```

Maintenant, vous pourrez vous connecter de MySQL Workbench à
```hôte: `0.0.0.0`
port: `3306`
```
Après toutes les modifications, la requête affichera:
```select host, user from mysql.user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | root          |
| localhost | healthchecker |
| localhost | mysql.session |
| localhost | mysql.sys     |
+-----------+---------------+
```