pythonstock / stock

stock,股票系统。使用python进行开发。
Apache License 2.0
6.58k stars 2.21k forks source link

启动后没有数据的问题排查 2022-04-12 #85

Open bg4xsd opened 2 years ago

bg4xsd commented 2 years ago

mkdir -p /data/mariadb/data docker pull pythonstock/pythonstock:latest docker pull mariadb:latest

启动容器后,遇到了没有数据显示的问题; 进入 jobs里面测试 basic_job.py, 提示数据连接失败; 找到common,发现定义中使用的是 mysqldb作为默认值。 删除已经激活的容器, 重新运行 docker run --name mysqldb -v /data/mariadb/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=mysqldb -p 3306:3306 -d mariadb:latest

docker run -itd --link=mysqldb --name stock \ -v /data/notebooks:/data/notebooks \ -p 8888:8888 \ -p 9999:9999 \ pythonstock/pythonstock:latest

再次测试,数据库连接正常。 不去修改python的原因是容器里面修改太麻烦,或者自己挂接目录进去,折腾啊。

再次更新一下,数据库docker的名称和root的密码都已经改成'mysqldb',但文档上都还是用的'mariadb',说得是正确的。

nitenzhao commented 2 years ago

嗯,代码里的配置 和文档说的不太一致,数据库docker的名称和root的密码都已经改成'mysqldb',但文档上都还是用的'mariadb',需要将文档里的启动方法做稍微调整

jianxinH commented 2 years ago

你好根据你的建议修改后出现数据库密码错误,请问是哪里除了你建议的语句修改还有哪里需要修改呢 sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'172.17.0.3' (using password: YES)")

jianxinH commented 2 years ago

sudo docker run -itd --name stock \

-v /data/notebooks:/data/notebooks \
-p 8888:8888 \
-p 9999:9999 \
-e MYSQL_HOST=mysqldb \
-e MYSQL_USER=root \
-e MYSQL_PWD= mysqldb \
-e MYSQL_DB=stock_data \
pythonstock/pythonstock:latest

Unable to find image 'mysqldb:latest' locally docker: Error response from daemon: pull access denied for mysqldb, repository does not exist or may require 'docker login': denied: requested access to the resource is denied. See 'docker run --help'.

bg4xsd commented 2 years ago

docker run --name mysqldb -v /data/mariadb/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysqldb -p 3306:3306 -d mariadb:latest 用这个命令启动数据看 passwd --这里上面 ----看上面这里, 不能改

docker run -itd --link=mysqldb--name stock -v /data/notebooks:/data/notebooks -p 8888:8888 -p 9999:9999 pythonstock/pythonstock:latest 然后用这个命令组启动, 不能用你那个 mysql的配置。

jianxinH commented 2 years ago

我本来也是这么启动的,但是出现了个报错sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'172.17.0.3' (using password: YES)")

isgoungoo commented 2 years ago

非常感谢 我最近也是在折腾。请问这个docker安装就是按照如下:

创建数据库目录

mkdir -p /data/mariadb/data

拉取stock镜像

docker pull pythonstock/pythonstock:latest

拉取数据库镜像

docker pull mariadb:latest

创建数据库容器

docker run --name mysqldb -v /data/mariadb/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=mysqldb -p *****:3306 -d mariadb:latest

创建stock容器

docker run -itd --link=mysqldb --name stock \ -v /data/notebooks:/data/notebooks \ -p :8888 \ -p :9999 \ pythonstock/pythonstock:latest

然后运行:

ssh进入stock容器

docker exec -it stock bash

手动运行任务

sh /data/stock/jobs/cron.daily/run_daily

请问是这条样子么?****代表修改端口!

isgoungoo commented 2 years ago

[root@VM-20-3-centos ~]# docker exec -it stock bash root@ed5566776c56:/data# cd stock/jobs/ root@ed5566776c56:/data/stock/jobs# bash basic_job.py basic_job.py: line 4: import: command not found basic_job.py: line 5: import: command not found basic_job.py: line 8: syntax error near unexpected token (' basic_job.py: line 8:def create_new_database():' root@ed5566776c56:/data/stock/jobs#

bg4xsd commented 2 years ago

我本来也是这么启动的,但是出现了个报错sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'172.17.0.3' (using password: YES)")

重新按照第一帖试试,修改了一个小错误。

bg4xsd commented 2 years ago

sh /data/stock/jobs/cron.daily/run_daily

要努力折腾啊。 sh /data/stock/jobs/cron.daily/run_daily 是表示 在当前的 shell下面执行 run_daily 里面的 , bash basic_job.py 这样执行是错的, 应该 python basic_job.py, 如果不出错,就可以等第二天看结果了。

不过,不要报太大的希望, 就算有数据也是很简单的。

bg4xsd commented 2 years ago

看到不少人在折腾, 多说两句,跑这个系统最好大家懂点 python, 熟悉 docker的部署, 否则用起来会比较费劲。 这个系统提供的功能比较简单,如果想看看数据的,建议直接去 akshare跑网站上的例子就可以了。 如果想做web部署的,可以看看代码;东西比较简单。 折腾玩玩就好,不要太认真,抱了太多的期望。

isgoungoo commented 2 years ago

看到不少人在折腾, 多说两句,跑这个系统最好大家懂点 python, 熟悉 docker的部署, 否则用起来会比较费劲。 这个系统提供的功能比较简单,如果想看看数据的,建议直接去 akshare跑网站上的例子就可以了。 如果想做web部署的,可以看看代码;东西比较简单。 折腾玩玩就好,不要太认真,抱了太多的期望。

哈哈 非常感谢 搞定了

lingximm commented 2 years ago

直接运行 startStock.sh 就可以了

vinson-Z commented 2 years ago

直接运行 startStock.sh 就可以了 弄不了。下载了Docker Desktop,拉取镜像了不知道怎么弄。打开不了窗口,希望指点

vinson-Z commented 2 years ago

弄不了。下载了Docker Desktop,拉取镜像了不知道怎么弄。打开不了窗口,希望指点

弄不了。下载了Docker Desktop,拉取镜像了不知道怎么弄。打开不了窗口,希望指点

GuoxuYuan commented 2 years ago

按照一楼的办法出现这个错误:(1045, "Access denied for user 'root'@'172.17.0.3' (using password: YES)"),好像是mysql启动不对,还需要在重新启动mysql服务吗?

jianxinH commented 2 years ago

mkdir -p /data/mariadb/data docker pull pythonstock/pythonstock:latest docker pull mariadb:latest

启动容器后,遇到了没有数据显示的问题; 进入 jobs里面测试 basic_job.py, 提示数据连接失败; 找到common,发现定义中使用的是 mysqldb作为默认值。 删除已经激活的容器, 重新运行 docker run --name mysqldb -v /data/mariadb/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysqldb -p 3306:3306 -d mariadb:latest

docker run -itd --link=mysqldb --name stock -v /data/notebooks:/data/notebooks -p 8888:8888 -p 9999:9999 pythonstock/pythonstock:latest

再次测试,数据库连接正常。 不去修改python的原因是容器里面修改太麻烦,或者自己挂接目录进去,折腾啊。

再次更新一下,数据库docker的名称和root的密码都已经改成'mysqldb',但文档上都还是用的'mariadb',说得是正确的。

跟着楼主的操作完成后,进入mysqldb镜像修改root % 的密码为mysqldb,然后执行sh /data/stock/jobs/cron.daily/run_daily就可以了

vinson-Z commented 2 years ago

数据库mariadb不能运行,run后,数据库是exit状态,不知道原因何在?不能正常运行,求懂的大神能够帮助指点,

vinson-Z commented 2 years ago

2022-05-03 13:31:17+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.7.3+maria~focal started. 2022-05-03 13:31:18+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' 2022-05-03 13:31:18+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.7.3+maria~focal started. 2022-05-03 13:31:18+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified You need to specify one of MARIADB_ROOT_PASSWORD, MARIADB_ALLOW_EMPTY_ROOT_PASSWORD and MARIADB_RANDOM_ROOT_PASSWORD 数据库未初始化,未指定密码选项,请问问题出在哪里呢?希望有知道的加wx:vinsongege,帮助解决,必有感谢

pldjn commented 2 years ago

mkdir -p /data/mariadb/data docker pull pythonstock/pythonstock:latest docker pull mariadb:latest 启动容器后,遇到了没有数据显示的问题; 进入 jobs里面测试 basic_job.py, 提示数据连接失败; 找到common,发现定义中使用的是 mysqldb作为默认值。 删除已经激活的容器, 重新运行 docker run --name mysqldb -v /data/mariadb/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysqldb -p 3306:3306 -d mariadb:latest docker run -itd --link=mysqldb --name stock -v /data/notebooks:/data/notebooks -p 8888:8888 -p 9999:9999 pythonstock/pythonstock:latest 再次测试,数据库连接正常。 不去修改python的原因是容器里面修改太麻烦,或者自己挂接目录进去,折腾啊。 再次更新一下,数据库docker的名称和root的密码都已经改成'mysqldb',但文档上都还是用的'mariadb',说得是正确的。

跟着楼主的操作完成后,进入mysqldb镜像修改root % 的密码为mysqldb,然后执行sh /data/stock/jobs/cron.daily/run_daily就可以了

怎么进入mysqldb镜像啊