Назад | Перейти на главную страницу

Как подключиться к mysql на хосте из докера?

У меня есть mysql на моем локальном хосте, и я могу войти в систему с root:

[root@pocnnr1n1 etc]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+

Теперь у меня есть докер на этом хосте с IP-адресом 172.17.0.2.

Нет проблем с пингом от докера к хосту:

root@eaa90c1059f2:/app/airflow/dags# ping 192.168.211.251
PING 192.168.211.251 (192.168.211.251): 56 data bytes
64 bytes from 192.168.211.251: icmp_seq=0 ttl=64 time=0.208 ms

Из докера, если я вручную запустил pymysql для создания соединения:

conn= pymysql.connect(host='192.168.211.251', port=3306, user='root',
passwd='root', db='airflow')

У меня следующая ошибка:

pymysql.err.OperationalError: (1045, «Доступ запрещен для пользователя 'root'@'172.17.0.2' (с использованием пароля: ДА)»)

Если я изменю IP-адрес на 172.17.0.2, как показано ниже:

conn= pymysql.connect(host='172.17.0.2', port=3306, user='root',
passwd='root', db='airflow')

У меня следующая ошибка:

pymysql.err.OperationalError: (2003, «Не удается подключиться к серверу MySQL на '172.17.0.2' ([Errno 111] В соединении отказано)»)