polardbxsql/docs/zh_CN/quickstart-how-to-debug-cn.md

122 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

### 概述
作为一个开源社区贡献者通常使用MacOS等操作系统进行开发如何在本地搭建PolarDB-X的开发环境呢
本文档对PolarDB-X的本地CN端开发流程进行了说明覆盖代码编译、数据库安装、部署等流程。
备注本文档主要针对只进行CN端开发人员使用采用MacOS + Idea的组合方便开源社区参与者能够在本地部署可运行的PolarDB-X环境并对CN端进行debug。
### 源码下载
下载 [PolarDB-X SQL](https://github.com/polardb/polardbx-sql) 代码main 分支
``` shell
git clone https://github.com/polardb/polardbx-sql
```
### 安装依赖
进入CN代码目录下载相应的依赖注意系统及maven均使用JDK 1.8
```shell
# 安装依赖 JDK 1.8 和 Maven 3
# 进入代码目录
cd polardbx-sql/
# 确保 polardbx-rpc 子模块 (PolarDB-X Glue) 已初始化
git submodule update --init
# 编译打包
mvn install -D maven.test.skip=true -D env=release
```
### 安装DN docker镜像
首先在本地安装docker
```shell
# 使用homebrew下载docker
brew install --cask --appdir=/Applications docker
```
也可以下载docker桌面版[Install Docker Desktop on Mac](https://docs.docker.com/desktop/mac/install/)
```shell
# 运行PolarDB-X远程镜像并建立端口映射
# 默认使用 4886 作为 mysql端口32886 作为私有协议端口
docker run -d --name some-dn-and-gms --env mode=dev -p 4886:4886 -p 32886:32886 polardbx/polardb-x
```
使用``` docker ps -a ```指令查看当前运行的容器以及相应的端口映射。
### 修改resources/server.properties
查看PolarDB-X的`metaDbPasswd`
```shell
mysql -h127.0.0.1 -P4886 -uroot -padmin -D polardbx_meta_db_polardbx -e "select passwd_enc from storage_info where inst_kind=2"
```
进入`polardbx-server/src/main/resources/server.properties`文件并依次修改以下变量
```shell
# PolarDB-X 服务端口
serverPort=8527
managerPort=3406
# PolarDB-X RPC 端口
rpcPort=9090
charset=utf-8
processors=4
processorHandler=16
processorKillExecutor=128
timerExecutor=8
managerExecutor=256
serverExecutor=1024
idleTimeout=
trustedIps=127.0.0.1
slowSqlTime=1000
maxConnection=20000
allowManagerLogin=1
allowCrossDbQuery=true
galaxyXProtocol=1
# MetaDB地址
metaDbAddr=127.0.0.1:4886
# MetaDB私有协议端口
metaDbXprotoPort=32886
# MetaDB用户
metaDbUser=my_polarx
metaDbName=polardbx_meta_db_polardbx
# PolarDB-X实例名
instanceId=polardbx-polardbx
#metaDb密码通过查询获得
metaDbPasswd=+row16HHcsxn1JZ4YKcsrzjxOg1WZcRLUgba/IRagfc=
```
### 修改Idea环境变量
在使用Idea作为调试IDE时首先需要保证工程JDK使用JDK 1.8。
添加Idea的环境变量`dnPasswordKey`默认使用asdf1234ghjk5678
将Idea中`Preference - Build,Execution,Deployment - Build tools - maven - importing - VM options for importer`设置为`-Xmx2048m -Xms2048m`
将Idea中`Preference-Compiler-Build process heap size`设置为4096
![add_env_variable](../images/add_env_variable.png)
### 运行TddlLauncher.java
CN代码的运行入口为`com/alibaba/polardbx/server/TddlLauncher.java`,运行`TddlLauncher.java`即可看到相应日志输出。
![image-20220627220813331](../images/tddl_logs.png)
连接PolarDB-X验证如果能连上说明数据库启动成功。
``` shell
mysql -h127.1 -P8527 -upolardbx_root
```
![image-20220627221138507](../images/success_output.png)
FYI: 系统运行日志在 polardbx-sql 同级目录的 logs 文件夹中。