- 启动容器
- 介绍
- 创建Mysql数据库
- 初始化数据库
启动容器
首先确保 mysql 容器已经启动,详见 开发环境搭建
介绍
本小节介绍了如何初始化Choerodon 的数据库。
创建Mysql数据库
1.查看容器,确认存在容器名为mysql的容器。
2.用choerodon用户命令行登陆 mysql 容器,密码为 123456。
$ docker exec -ti mysql mysql -u choerodon -p
3.创建用户和数据库。
/** init_user.sql */CREATE USER 'choerodon'@'%' IDENTIFIED BY "123456";CREATE DATABASE IF NOT EXISTS base_service DEFAULT CHARACTER SET utf8mb4;CREATE DATABASE IF NOT EXISTS manager_service DEFAULT CHARACTER SET utf8mb4;CREATE DATABASE IF NOT EXISTS asgard_service DEFAULT CHARACTER SET utf8mb4;CREATE DATABASE IF NOT EXISTS notify_service DEFAULT CHARACTER SET utf8mb4;GRANT ALL PRIVILEGES ON base_service.* TO choerodon@'%';\GRANT ALL PRIVILEGES ON manager_service.* TO choerodon@'%';\GRANT ALL PRIVILEGES ON asgard_service.* TO choerodon@'%';\GRANT ALL PRIVILEGES ON notify_service.* TO choerodon@'%';\FLUSH PRIVILEGES;
4.查看用户与数据库。
mysql> select User from mysql.user;+---------------+| User |+---------------+| choerodon || mysql.session || mysql.sys || root |+---------------+4 rows in set (0.00 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || asgard_service || base_service || manager_service || mysql || notify_service || performance_schema || sys || todo_service |+--------------------+9 rows in set (0.00 sec)
初始化数据库
需初始化manager-service,base_service两个数据库。
1.新建初始化数据库临时目录,并创建初始化脚本。
$ mkdir -p tmp$ cd tmp$ touch init-local-database.sh
2.修改初始化脚本。
#!/bin/bash# get manager-servicegit clone https://github.com/choerodon/manager-service.git manager-servicemkdir -p manager/scriptcp -r ./manager-service/src/main/resources/script/db ./manager/scriptrm -rf ./manager-service# get base-servicegit clone https://github.com/choerodon/base_service.git base_servicemkdir -p base/scriptcp -r ./base-service/src/main/resources/script/db ./base/scriptrm -rf ./base-service# get choerodon-tool-liquibaseMAVEN_LOCAL_REPO=$(cd / && mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout)TOOL_GROUP_ID=io.choerodonTOOL_ARTIFACT_ID=choerodon-tool-liquibaseTOOL_VERSION=${1:-0.11.0.RELEASE}TOOL_JAR_PATH=${MAVEN_LOCAL_REPO}/${TOOL_GROUP_ID/\./\/}/${TOOL_ARTIFACT_ID}/${TOOL_VERSION}/${TOOL_ARTIFACT_ID}-${TOOL_VERSION}.jarmvn org.apache.maven.plugins:maven-dependency-plugin:get \-Dartifact=${TOOL_GROUP_ID}:${TOOL_ARTIFACT_ID}:${TOOL_VERSION} \-Dtransitive=false# init manager-servicejava -Dspring.datasource.url="jdbc:mysql://localhost:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \-Dspring.datasource.username=choerodon \-Dspring.datasource.password=123456 \-Ddata.drop=false -Ddata.init=true \-Ddata.dir=./manager \-jar ${TOOL_JAR_PATH}# init base-servicejava -Dspring.datasource.url="jdbc:mysql://localhost:3306/base_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \-Dspring.datasource.username=choerodon \-Dspring.datasource.password=123456 \-Ddata.drop=false -Ddata.init=true \-Ddata.dir=./base \-jar ${TOOL_JAR_PATH}
3.运行脚本。
$ sh init-local-database.sh [version] #如未指定version,则默认使用tool version为0.11.0.
4.命令执行成功之后,刷新数据库,会出现初始化脚本中的表以及初始化数据。
