gpt4 book ai didi

mysql - 通过 Docker 连接到本地主机上的 MySQL 服务器

转载 作者:行者123 更新时间:2023-11-29 01:28:30 25 4
gpt4 key购买 nike

因此,我通常可以通过使用 --add-host=localbox:192.168.59.3 运行容器来通过 Docker 联系我的本地主机。 ping localbox 工作得很好。问题是,我什至无法从 MySQL 服务器获得响应。 mysql -h localbox,它在 docker 容器外工作正常,只是让我得到 ERROR 2003 (HY000): Can't connect to MySQL server on 'localbox' (111) 从内部。

我已经完成GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

我已将 bind-address = 0.0.0.0 添加到/etc/my.cnf 中。这些都没有帮助。给了什么?

上下文:我在 OS X Yosemite 上通过 boot2docker 运行所有这些。

最佳答案

所以,事实证明这是自制软件的错,设计决策确实有问题。您可以通过运行推荐的 launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 在自制软件中启动 mysql-server。但是,当检查这个文件时,你会发现绑定(bind)地址是硬编码的!

  <array>
<string>/usr/local/opt/mysql/bin/mysqld_safe</string>
<string>--bind-address=127.0.0.1</string>
<string>--datadir=/usr/local/var/mysql</string>
</array>

因此,无论您在任何 my.cnf 文件中做什么,它都将始终绑定(bind)到 127.0.0.1,并且您永远无法从容器中进行查询。我的修复是直接编辑这个文件而不是提供绑定(bind)地址,这样我们就可以让/etc/my.cnf 为我们做这件事。或者,尽管我不推荐这样做,但您可以直接在此文件中更改绑定(bind)地址。

关于mysql - 通过 Docker 连接到本地主机上的 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27617343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com