gpt4 book ai didi

python - 无法使用 mysqlclient 从 docker 连接

转载 作者:行者123 更新时间:2023-11-29 18:04:36 26 4
gpt4 key购买 nike

我正在尝试连接到我的mysql容器,但每当我尝试运行mysql -uroot -p时,我总是得到bash:mysql:命令未找到,但是mysql当我尝试运行 pip3 freeze 时,它已经安装在 docker 容器中,我得到了这个结果

alembic==0.9.6
appdirs==1.4.3
bcrypt==3.1.4
certifi==2017.11.5
cffi==1.11.2
chardet==3.0.4
click==6.7
elasticsearch==5.5.1
flasgger==0.8.0
Flask==0.12.2
Flask-Cors==3.0.3
gevent==1.2.2
greenlet==0.4.12
idna==2.6
iso3166==0.8
itsdangerous==0.24
Jinja2==2.10
jsonschema==2.6.0
Mako==1.0.7
MarkupSafe==1.0
mistune==0.8.3
mock==2.0.0
mysqlclient==1.3.12
packaging==16.8
pbr==3.1.1
pybuilder==0.11.12
pycparser==2.18
pycrypto==2.6.1
pyparsing==2.2.0
python-dateutil==2.6.1
python-editor==1.0.3
PyYAML==3.12
redis==2.10.6
requests==2.18.4
six==1.11.0
SQLAlchemy==1.2.0
tblib==1.3.2
ujson==1.35
urllib3==1.21.1
validate-email==1.3
Werkzeug==0.13

如您所见,mysqlclient 已安装。如果我尝试使用 ping 检查 mysql 容器是否可以在我的 docker 中访问。它工作正常,我能够得到回复。我现在如何连接,因为它显示 bash: mysql: command not find

--更新--

运行 docker run 后,我在 docker 容器内连接并运行 pip install --no-cache-dir -rrequirements.txt ,下面是输出

enter image description here

现在它说要求已经满足。我不确定,但这是否意味着它已经安装了该软件包?下面是我的 dockerfile

FROM python:3.5.2
ADD deployment /root/.ssh
RUN chmod 700 /root/.ssh/id_rsa
RUN ssh-keyscan -t rsa bitbucket.org > /root/.ssh/known_hosts
RUN mkdir -p /app
ADD . /app
WORKDIR /app
RUN pip install --no-cache-dir -r requirements.txt
WORKDIR /app/myproject
CMD ["python", "./init.py", "-c", "config/config.yaml"]

最佳答案

这里的问题是 CLI 命令 mysql 没有安装在您的主机上。然而,它很可能安装在您的 docker 容器内。正如其中一条评论所指出的,您使用 pip 安装的 mysqlclient 不会安装 mysql 命令行工具。

作为一种快速解决方法,我建议在 mysql 容器内运行 mysql 命令,如下所示:

docker exec -it <container id> mysql -u root -h localhost -p

关于python - 无法使用 mysqlclient 从 docker 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47998646/

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