Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да свържа mysql workbench към работещ mysql вътре в docker?

По подразбиране след внедряването MySQL има следните ограничения за връзка:

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)

Очевидно за целите на сигурността няма да можете да се свържете с него извън изображението на docker. Ако трябва да промените това, за да позволите на root да се свързва от всеки хост (да речем, за целите на разработката), направете:

  1. Стартирайте вашето mysql изображение с всички необходими съпоставяния на портове:

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

или, ако се изисква пълното картографиране на портовете:

docker run -p 3306:3306 -p 33060:33060 --name=mysql57 -d mysql/mysql-server:5.7
  1. Ако това е новата инсталация - вземете паролата по подразбиране:

    docker logs mysql57 2>&1 | grep GENERATED

  2. Свържете се с помощта на mysql клиент директно към mysqld в docker:

    docker exec -it mysql57 mysql -uroot -p

  3. Ако това е новата инсталация, ще бъдете помолени да промените паролата с помощта на ALTER USER команда. Направи го.

  4. Изпълнете SQL:

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

  5. Излезте от mysql клиент.

  6. Рестартирайте контейнера:

    docker restart mysql57

Сега ще можете да се свържете от MySQL Workbench към

host: `0.0.0.0` 
port: `3306`

След всички промени заявката ще покаже:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да инсталирам Python MySQLdb модул с помощта на pip?

  2. Най-добрият тип данни за съхраняване на парични стойности в MySQL

  3. Как да създадете MySQL база данни с помощта на cPanel API

  4. Групиране по месец и година в MySQL

  5. JSON_LENGTH() – Връща дължината на JSON документ в MySQL