From f3a36d4a743a39ce15e1fc1bd84aebf65fc66ab3 Mon Sep 17 00:00:00 2001 From: hyh123a Date: Sat, 9 Oct 2021 12:16:03 +0800 Subject: [PATCH] modfiy the doc for docker-compose --- README.md | 122 +++++++++++++++++++++++++++++++++------- myems-api/test_mysql.py | 28 +++++++++ 2 files changed, 131 insertions(+), 19 deletions(-) create mode 100644 myems-api/test_mysql.py diff --git a/README.md b/README.md index 7a238908..4f33db09 100644 --- a/README.md +++ b/README.md @@ -99,53 +99,137 @@ administrator@myems.io ``` -### Docker Docker-compose 安装 +### Docker-compose 安装 +#### 前提 + +- 主机已安装docker、docker-compose、npm +- MySQL数据库已安装,拥有一个账号为root,密码为!MyEMS1的用户 +- MySQL数据库可正常登陆,可被安装Docker的主机Ping通以及远程访问 + +#### 配置 + +注一:这里的主机指的是**安装Docker的主机**, 这里的IP和账号密码都为假定的,用来展示说明,实际情况中用户需要根据自己的配置改为自己的,具体的修改步骤会在“安装”中讲述。 + +注二:这里如果**安装数据库和安装Docker的主机为同一个主机,那么数据库IP和主机IP修改为一个实际IP**即可,这里是以数据库,和安装Docker的主机不在同一个上举例的。 + +| -- | -- | +| ---------- | ----------- | +| 主机IP | 192.168.0.1 | +| 数据库IP | 192.168.0.2 | +| 数据库账号 | root | +| 数据库密码 | !MyEMS1 | + + + +#### 安装 + +- 1.克隆仓库 ``` git clone https://gitee.com/myems/myems.git ``` -修改以下文件中的数据库IP -假定数据库IP为: 192.168.0.1 +- 2.数据库导入 (否则数据库没有用户信息,网页无法验证登录) + ``` -sudo nano myems-api/config.py -sudo nano myems-aggregation/config.py -sudo nano myems-cleaning/config.py -sudo nano myems-modbus-tcp/config.py -sudo nano myems-normalization/config.py +cd myems/database/install +mysql -u root -p < myems_billing_baseline_db.sql +mysql -u root -p < myems_billing_db.sql +mysql -u root -p < myems_energy_baseline_db.sql +mysql -u root -p < myems_energy_db.sql +mysql -u root -p < myems_fdd_db.sql +mysql -u root -p < myems_historical_db.sql +mysql -u root -p < myems_reporting_db.sql +mysql -u root -p < myems_system_db.sql +mysql -u root -p < myems_user_db.sql ``` -~~'host': '127.0.0.1'~~ +注: 如有问题,详情可查看"database/README.md" -'host': '192.168.0.1' -修改web和admin文件夹下nginx.conf中的location '/api' -假定本机IP为: 192.168.0.2 +- 3.修改配置 + +注:如“配置”所述,这里假定的**主机IP为 192.168.0.1,数据库IP为 192.168.0.2,数据库账号为:root,数据库密码:!MyEMS1,用户应该修改为自己对应的主机IP,数据库IP,数据库账号,数据库密码** + +**3.1** 修改nginx.conf里的API配置 ``` -sudo nano admin/nginx.conf -sudo nano web/nginx.conf +cd myems +sed -i 's/127.0.0.1:8000/192.168.0.1:8000/g' admin/nginx.conf +sed -i 's/127.0.0.1:8000/192.168.0.1:8000/g' web/nginx.conf ``` -~~proxy_pass http://127.0.0.1:8000/;~~ -proxy_pass http://192.168.0.2:8000/; +**3.2** 修改config.py里的数据库IP,账号,密码 +``` +# 这里以修改数据库IP为例,如果数据库账号密码也不同,请根据自己需求替换config.py里的账号密码 +cd myems +sed -i 's/127.0.0.1/192.168.0.2/g' myems-api/config.py +sed -i 's/127.0.0.1/192.168.0.2/g' myems-aggregation/config.py +sed -i 's/127.0.0.1/192.168.0.2/g' myems-cleaning/config.py +sed -i 's/127.0.0.1/192.168.0.2/g' myems-modbus-tcp/config.py +sed -i 's/127.0.0.1/192.168.0.2/g' myems-normalization/config.py +``` + +**3.3** 测试数据库是否可以正确连接 +``` +python3 myems/myems-api/test_mysql.py +``` +注:如果测试通过,继续下一步操作,否则请修改config.py配置,确保数据库可以通过Python3正常连接访问。 -将Web打包生成产品文件 + + +- 4.web打包 (myems/web为React项目,需要打包为产品文件) + ``` cd myems/web npm install npm run build ``` -使用docker-compose安装 + + + + + + + + +- 5.docker-compose一键安装 + ``` cd myems docker-compose up -d ``` + + +- 6.测试 + + +| | 网址 | 结果 | +| ----- | ----------------------- | ---------------- | +| web | 192.168.0.1:80 | 输入账号密码登陆成功 | +| admin | 192.168.0.1:8001 | 输入账号密码登录成功 | +| api | 192.168.0.1:8000/spaces | 返回Json数据无报错 | +注:如果api测试报错,请确认config.py里的数据库IP,数据库账号,数据库密码是否正确,如果不正确,请修改config.py后执行: +``` +docker-compose up --build -d +``` + + +| -- | -- | +| ---------- | ----------- | +| web账号 | administrator@myems.io | +| web密码 | !MyEMS1 | +| admin账号 | administrator | +| admin密码 | !MyEMS1 | + +注:如有问题,欢迎创建Issue + + ## 功能版本对比 | 功能 |社区版 |企业版 | 说明 | | :--- | :----: | :----: | :----: | -| 开源 | ✔️ | ❌ | | +| 开源 | ✔️ | ❌ | | | 价格 | 免费 | 收费 | 标准组件授权费;定制组件开发费; | | 更换品牌名称与标志LOGO | ❌ | ✔️ | | | Modbus TCP 协议 | ✔️ | ✔️ | 采集数据 https://modbus.org/ | diff --git a/myems-api/test_mysql.py b/myems-api/test_mysql.py new file mode 100644 index 00000000..ab6a73a8 --- /dev/null +++ b/myems-api/test_mysql.py @@ -0,0 +1,28 @@ +import mysql.connector +import config + + +def test_connect(): + cursor = None + cnx = None + try: + cnx = mysql.connector.connect(**config.myems_user_db) + cursor = cnx.cursor() + + query = (" SELECT id, name, display_name, email " + " FROM tbl_users " + " ORDER BY id ") + cursor.execute(query) + rows = cursor.fetchall() + print("The config of database is right:", rows) + except Exception as e: + print("The config of database is wrong:", str(e)) + finally: + if cursor: + cursor.close() + if cnx: + cnx.disconnect() + + +if __name__ == "__main__": + test_connect()