如何从docker连接主机上的mysql?

如何从docker连接主机上的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           |
+--------------------+

现在,我在这个主机上有一个docker,它的ip地址是“172.17.0.2”

从docker到主机ping通没有问题:

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

从 docker,如果我手动运行 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,“无法连接到‘172.17.0.2’上的 MySQL 服务器([Errno 111] 连接被拒绝)”)

相关内容