• 启动容器
  • 介绍
  • 创建Mysql数据库
  • 初始化数据库

    启动容器

    首先确保 mysql 容器已经启动,详见 开发环境搭建

    介绍

    本小节介绍了如何初始化Choerodon 的数据库。

    创建Mysql数据库

    1.查看容器,确认存在容器名为mysql的容器。

    2.用choerodon用户命令行登陆 mysql 容器,密码为 123456

    1. $ docker exec -ti mysql mysql -u choerodon -p

    3.创建用户和数据库。

    1. CREATE USER 'choerodon'@'%' IDENTIFIED BY "123456";
    2. CREATE DATABASE IF NOT EXISTS iam_service DEFAULT CHARACTER SET utf8;
    3. CREATE DATABASE IF NOT EXISTS manager_service DEFAULT CHARACTER SET utf8;
    4. CREATE DATABASE IF NOT EXISTS asgard_service DEFAULT CHARACTER SET utf8;
    5. CREATE DATABASE IF NOT EXISTS notify_service DEFAULT CHARACTER SET utf8;
    6. GRANT ALL PRIVILEGES ON iam_service.* TO choerodon@'%';\
    7. GRANT ALL PRIVILEGES ON manager_service.* TO choerodon@'%';\
    8. GRANT ALL PRIVILEGES ON asgard_service.* TO choerodon@'%';\
    9. GRANT ALL PRIVILEGES ON notify_service.* TO choerodon@'%';\
    10. FLUSH PRIVILEGES;

    4.查看用户与数据库。

    1. $ mysql> select User from mysql.user;
    2. +-----------+
    3. | User |
    4. +-----------+
    5. | choerodon |
    6. | root |
    7. | mysql.sys |
    8. +-----------+
    9. 3 rows in set (0.00 sec)
    10. mysql> show databases;
    11. +-----------------------------+
    12. | Database |
    13. +-----------------------------+
    14. | asgard_service |
    15. | information_schema |
    16. | iam_service |
    17. | manager_service |
    18. | notify_service |
    19. | todo_service |
    20. | mysql |
    21. | performance_schema |
    22. | sys |
    23. +-----------------------------+
    24. 9 rows in set (0.01 sec)

    初始化数据库

    需初始化manager-serviceiam-service两个数据库。

    1.新建初始化数据库临时目录,并创建初始化脚本。

    1. $ mkdir -p tmp
    2. $ cd tmp
    3. $ touch init-local-database.sh

    2.修改初始化脚本。

    1. #!/bin/bash
    2. # get manager-service
    3. git clone https://github.com/choerodon/manager-service.git manager-service
    4. mkdir -p manager/script
    5. cp -r ./manager-service/src/main/resources/script/db ./manager/script
    6. rm -rf ./manager-service
    7. # get user-service
    8. git clone https://github.com/choerodon/iam-service.git iam-service
    9. mkdir -p iam/script
    10. cp -r ./iam-service/src/main/resources/script/db ./iam/script
    11. rm -rf ./iam-service
    12. # init manager-service
    13. java -Dspring.datasource.url="jdbc:mysql://localhost:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    14. -Dspring.datasource.username=choerodon \
    15. -Dspring.datasource.password=123456 \
    16. -Ddata.drop=false -Ddata.init=init \
    17. -Ddata.dir=./manager \
    18. -jar ../bin/choerodon-tool-liquibase.jar
    19. # init iam-service
    20. java -Dspring.datasource.url="jdbc:mysql://localhost:3306/iam_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    21. -Dspring.datasource.username=choerodon \
    22. -Dspring.datasource.password=123456 \
    23. -Ddata.drop=false -Ddata.init=init \
    24. -Ddata.dir=./iam \
    25. -jar ../bin/choerodon-tool-liquibase.jar

    3.运行脚本。

    1. $ sh ./init-local-database.sh

    4.命令执行成功之后,刷新数据库,会出现初始化脚本中的表以及初始化数据。

    本地需要的manager-serviceiam-service 尽量以最新版本的tag 为主。如果初始化数据库失败,可以下载最新版本的choerodon-tool-liquibase.jar 并重命名覆盖./bin/choerodon-tool-liquibase.jar,然后重新执行init-local-database.sh 脚本