无法使用mysqlclient从docker连接

问题描述 投票:0回答:1

我正在尝试连接到我的mysql容器,但每当我尝试运行mysql -uroot -p时,我总是得到bash: mysql: command not found但是当我尝试运行pip3 freeze时,mysql已经安装在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检查我的docker中是否可以访问mysql容器。它工作正常,我得到了回应。我现在如何连接,因为它说bash: mysql: command not found

- 更新 -

运行docker run之后,我在docker容器内连接并运行pip install --no-cache-dir -r requirements.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"]
python mysql docker
1个回答
0
投票

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

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

docker exec -it <container id> mysql -u root -h localhost -p
© www.soinside.com 2019 - 2024. All rights reserved.