docker按照教程部署pyspider,遇到的MYSQL问题。

执行命令:
docker run --name scheduler -d --link mysql:mysql --link rabbitmq:rabbitmq binux/pyspider:latest scheduler

最后部署webui出问题了,我去检查了scheduler这个日志:
docker logs scheduler :
最后报错的结果是:
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 102, in dbapi

return __import__('MySQLdb')

ImportError: No module named MySQLdb

我对docker完全不了解,请问这种情况该怎么解决呢。是我的自身系统带的PYTHON2.7包没有这个MySQLdb还是怎么一回事呢。

阅读 3.6k
1 个回答

day2:
我把mysql容器换成mongo部署运行日志已经不报错了,但是还是没有办法运行。。。估计pyspider的docker部署还是要依赖于mysql。

day3:
我把环境放到win10下去执行这个官网docker命令,错误还是依旧。现在想方法能不能修改这个容器,或者说能够找到容器的历史版本。

day3.1:
https://github.com/binux/pysp...
在github上翻到一个解决方案,跟我想的一样,但是我还是不会解决,准备去稍微学学docker的使用方法。

day5:
binux/pyspider容器mysql的解决方案的网址:
https://github.com/binux/pysp...

linux命令操作:
$:mkdir pyspiderproject && cd pyspiderproject
$:touch Dockerfile
$:gedit Dockerfile
文档输入:
FROM binux/pyspider
RUN pip install MySQL-python
VOLUME ["/opt/pyspider"]
ENTRYPOINT ["pyspider"]
EXPOSE 5000 23333 24444 25555
$:docker build -t binux/pyspider:my .

之后各种stop rm 容器,再按官方文档操作。

找到了问题的解决方案,现在果然报错变得不一样了。现在的报错是:

$:docker logs result_worker

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory") (Background on this error at: http://sqlalche.me/e/e3q8)

我猜测是mysql的容器修改了操作方法,导致pyspider无法链接上这个版本的mysql容器。初步意向是寻找老版本的mysql的version使用。

day5.1:
最后我成功解决了该问题,果然是mysql的version对不上号,需要将mysql:latest 改为mysql:5.7
最后一路运行到最后,Dashboard打开速度特别慢,我心都快凉了,但是居然打开了,测试运行成功。完美。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏