启动容器

首先确保 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 脚本