Skip to content
This repository has been archived by the owner on Jun 2, 2023. It is now read-only.

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

Open
bg4xsd opened this issue Apr 14, 2022 · 19 comments
Open

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

bg4xsd opened this issue Apr 14, 2022 · 19 comments

Comments

@bg4xsd
Copy link

bg4xsd commented Apr 14, 2022

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
Copy link

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

@jianxinH
Copy link

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

@jianxinH
Copy link

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
Copy link
Author

bg4xsd commented Apr 16, 2022

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
Copy link

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

@isgoungoo
Copy link

isgoungoo commented Apr 17, 2022

非常感谢 我最近也是在折腾。请问这个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
Copy link

[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
Copy link
Author

bg4xsd commented Apr 17, 2022

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

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

@bg4xsd
Copy link
Author

bg4xsd commented Apr 17, 2022

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
Copy link
Author

bg4xsd commented Apr 17, 2022

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

@isgoungoo
Copy link

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

哈哈 非常感谢 搞定了

@lingximm
Copy link

直接运行 startStock.sh 就可以了

@vinson-Z
Copy link

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

@vinson-Z
Copy link

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

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

@GuoxuYuan
Copy link

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

@jianxinH
Copy link

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
Copy link

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

@vinson-Z
Copy link

vinson-Z commented May 3, 2022

2022-05-03 13:31:17+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.7.3+mariafocal 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
Copy link

pldjn commented Jun 2, 2022

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镜像啊

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants