连接到外部 MYSQL docker 容器

2023-12-24

我有两个正在运行的虚拟机,其中一个 (A) 在 docker 网络内有 MYSQL 数据库。 另一个 (B) VM 具有我的前端应用程序 docker 容器。

我运行我的 MYSQL docker 容器 (A),如下所示:

docker run --name db --net=netname -v /path/to/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password  -d mysql:5.6.32

docker exec -i db mysql -pyourpassword -e 'CREATE DATABASE mydb'

编辑MYSQL后my.cnf文件至bind-address = 0.0.0.0我尝试使用 MYSQL docker 容器给我的 IP 地址从 VM (B) 进行连接ip addr show eth0命令。

这是:

 eth0@if46: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.2/16 scope global eth0
   valid_lft forever preferred_lft forever

主机:172.18.0.2 端口:3306

我收到的回复:

OperationalError: (2003, "Can't connect to MySQL server on '172.18.0.2' ([Errno 110] Connection timed out)")

我也尝试过 VM (A) ip 地址,但响应变为connection refused

我确信我错过了一些东西——或者很多东西——我愿意接受启发。我如何从服务器 (B) 成功连接到 (A) 我的 MYSQL 容器? 先感谢您。


您不妨将 mysql 端口映射到主机。

docker run -p 3306:3306 --name db --net=netname -v /path/to/mysql/:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=password  -d mysql:5.6.32

然后你可以使用主机ip或名称访问mysql。

如果您尝试通过 IP 地址直接访问容器..在大多数情况下,这意味着您做错了。假设每次启动容器时分配的 ip 都是不同的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接到外部 MYSQL docker 容器 的相关文章

  • MySql 5.7 ORDER BY 子句不在 GROUP BY 子句中并且包含非聚合列

    我试图在不禁用 my ini 中的 only full group by 的情况下弄清楚 这是我的查询 SELECT p title COUNT t qty AS total FROM payments t LEFT JOIN produc
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • 在 Intel 机器 (Mac) 上构建 ARM 架构的 Docker 镜像

    我希望能够从我的 Mac 构建 ARM 的 Docker 映像 我知道我可以使用 QEMU 在 Mac 上运行 ARM 容器 但我不知道如何为 ARM 构建 现在这有点复杂 我相信在不久的将来 docker 会让这一切变得更容易 基本上 您
  • 诊断“功能主机未运行。”在码头工人

    我正在尝试将几个基于 dotnet 的功能应用程序 v3 迁移到 docker 容器 为此 我们使用来自mcr microsoft com azure functions dotnet https hub docker com micros
  • mysql转储到derby

    我正在使用 derby 在 eclipse 中进行开发 是否可以从 MySQL 转储表并以某种方式将其用于 derby 我知道 ddl 和 dml 对于两个 dbms 来说是不同的 但我正在寻找一种除了转储 导出之外的合适方法 我可以找到两
  • 在java中执行外部程序并传递命令

    我有这个国际象棋引擎 Rybka exe 我必须在 java 中执行 以下是如何运行 Rybka 的示例 单击它后 控制台将打开并等待输入 然后你输入 uci 并按 Enter 键并等待它加载 大约 1 秒 然后你必须输入更多行作为选项和内
  • PHP PDO 使用 bindParam 第一个参数(不带冒号)[重复]

    这个问题在这里已经有答案了 请检查这个 user id int GET user id sql DELETE FROM users WHERE user id user id query db gt prepare sql query gt
  • Google Cloud Console 免费试用期满后恢复虚拟机实例

    我已经搜索了我的问题 但很惊讶没有找到答案 因为这一定是相当常见的情况 我的谷歌云控制台免费试用版大约两个月前就过期了 而我却没有意识到 我现在已升级到付费帐户 但我的 Wordpress VM 实例不再存在 事实上 没有虚拟机实例 Goo
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • Docker 容器与主机网络的网络性能非常慢

    我遇到了 Docker 容器和主机网络之间网络性能缓慢的问题 我在 Docker 论坛上提出了这个问题 但到目前为止还没有收到答案 Problem 设置 同一本地网络上的两台 Mac 第一个运行 MQTT 代理 mosquitto 第二个运
  • 非常大的字段会对 MySQL 数据库产生负面影响吗?

    我目前正在使用 Django 构建一个网站 并希望托管用户生物样式页面 该页面可能长达几 KB 这些字段不一定需要搜索 但在查找用户名时确实需要提供 将这些数据存储在数据库中会产生负面影响吗 如果我使用带有数据库链接的静态文本文件 我的服务
  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • 如何在 SEQUELIZE (nodeJS) 中创建触发器?

    我正在尝试使用sequelize 创建一个触发器 主要思想是创建一个实例CONFIG创建后USER USER MODEL module exports function sequelize DataTypes var User sequel
  • 在 SQL 中,如何从 SELECT * FROM ... 中排除结果?

    我知道我的标题不太具有描述性 让我在这里详细解释一下 假设一个表有 26 个字段 例如字段 a 字段 z 我只想要一个选择查询只返回 15 个字段 所以 通常 我会执行 SELECT field a field b field o FROM
  • 如何检测Mysql/innodb中的死锁?

    我知道在 Innodb 中使用事务时不可避免地会发生死锁 并且如果应用程序代码正确处理死锁 它们是无害的 正如手册所说 只需再试一次 所以我想知道 如何检测死锁 死锁是否会发出一些特殊的 mysql 错误号 如果重要的话 我正在使用 PHP
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 为什么 Docker 不支持多租户?

    我看了这个关于 Docker 的 YouTube 视频 https www youtube com watch v vb7U 9AO7Ww22 00 演讲者 Docker 产品经理 说道 您可能会想 Docker 不支持多租户 您是对的 但

随机推荐