Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak podłączyć mysql workbench do uruchamiania mysql w dockerze?

Domyślnie po wdrożeniu MySQL ma następujące ograniczenia połączeń:

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)

Najwyraźniej ze względów bezpieczeństwa nie będzie można połączyć się z nim poza obrazem dockera. Jeśli chcesz to zmienić, aby umożliwić rootowi łączenie się z dowolnego hosta (powiedzmy, w celach programistycznych), wykonaj:

  1. Uruchom obraz mysql ze wszystkimi wymaganymi mapowaniami portów:

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

lub, jeśli wymagane jest pełne mapowanie portów:

docker run -p 3306:3306 -p 33060:33060 --name=mysql57 -d mysql/mysql-server:5.7
  1. Jeśli to jest świeża instalacja - pobierz domyślne hasło:

    docker logs mysql57 2>&1 | grep GENERATED

  2. Połącz za pomocą mysql klienta bezpośrednio do mysqld w docker:

    docker exec -it mysql57 mysql -uroot -p

  3. Jeśli jest to nowa instalacja, zostaniesz poproszony o zmianę hasła za pomocą ALTER USER Komenda. Zrób to.

  4. Uruchom SQL:

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

  5. Zamknij mysql klienta.

  6. Uruchom ponownie kontener:

    docker restart mysql57

Teraz będziesz mógł połączyć się z MySQL Workbench do

host: `0.0.0.0` 
port: `3306`

Po wszystkich zmianach zapytanie pokaże:

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. Plik PHP nie może wprowadzić jakiejś części kodu

  2. LOAD DATA INFILE Kod błędu:13

  3. Jak rozwiązać problem odmowy dostępu dla użytkownika „root”@”localhost” (przy użyciu hasła:tak) podczas łączenia bazy danych MySQL

  4. Funkcja MySQL POW() – podnieś wartość do potęgi innej wartości

  5. Jak sprawić, by MySQL używał INDEXu do zapytań o widok?