sql >> Database >  >> RDS >> Mysql

Hoe mysql workbench te verbinden met mysql in docker?

Na implementatie heeft MySQL standaard de volgende verbindingsbeperkingen:

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)

Blijkbaar kun je er om veiligheidsredenen geen verbinding mee maken buiten de docker-image. Als je dat moet wijzigen zodat root verbinding kan maken vanaf elke host (bijvoorbeeld voor ontwikkelingsdoeleinden), doe dan:

  1. Start uw mysql-afbeelding met alle vereiste poorttoewijzingen:

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

of, als de volledige poorttoewijzing vereist is:

docker run -p 3306:3306 -p 33060:33060 --name=mysql57 -d mysql/mysql-server:5.7
  1. Als dit de nieuwe installatie is, pak dan het standaardwachtwoord:

    docker logs mysql57 2>&1 | grep GENERATED

  2. Maak verbinding met mysql client rechtstreeks naar de mysqld in docker:

    docker exec -it mysql57 mysql -uroot -p

  3. Als dit de nieuwe installatie is, wordt u gevraagd het wachtwoord te wijzigen met ALTER USER opdracht. Doe het.

  4. SQL uitvoeren:

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

  5. Sluit de mysql klant.

  6. Herstart de container:

    docker restart mysql57

U kunt nu verbinding maken vanuit MySQL Workbench naar

host: `0.0.0.0` 
port: `3306`

Na alle wijzigingen zal de zoekopdracht het volgende tonen:

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


  1. Wat is de reden / het nut om het ENABLE-sleutelwoord te gebruiken in Oracle-database-instructies?

  2. Waarom wordt de uitvoeringstijd van de opgeslagen procedure in Oracle aanzienlijk verlengd, afhankelijk van hoe deze wordt uitgevoerd?

  3. SQL Server-zelfstudie - Alles wat u nodig hebt om Transact-SQL onder de knie te krijgen

  4. Sql*plus retourneert altijd exit-code 0?