# DATABASE模式啟動項目簡介 (會員版專屬)
每個模式需要的庫不一樣,但表的數量個和結構基本上都是一樣. 區別在于: 所有表中, COLUMN模式比其他模式的多一個tenant_code字段, 且大部分索引也要加這個字段.
# 修改配置并編譯項目
1. 創建數據庫
~~~
CREATE DATABASE IF NOT EXISTS `lamp_defaults` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE IF NOT EXISTS `lamp_base_0000` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE IF NOT EXISTS `lamp_extend_0000` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE IF NOT EXISTS `lamp_activiti` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; // 開源版無需創建
~~~
2. 導入 [lamp-cloud/01-docs/sql](https://github.com/zuihou/lamp-cloud/blob/master/01-docs/sql/1.%E5%85%88%E6%89%A7%E8%A1%8C%E6%88%91%2C%E5%88%9B%E5%BB%BA%E6%95%B0%E6%8D%AE%E5%BA%93.sql) 文件夾中的腳本
- 向 lamp_defaults 庫導入 lamp_defaults.sql
- 向 lamp_base_0000 庫導入 lamp_base_0000.sql
- 向 lamp_extend_0000 庫導入 lamp_extend_0000.sql
- 向 lamp_activiti 庫導入 lamp_activiti.sql // 開源版無需創建
3. 參考 [將配置文件導入Nacos](將配置文件導入Nacos.md) , 將所有配置導入 nacos 中 **lamp-cloud的命名空間**中,并在**nacos**的`配置列表`修改mysql、redis、rabbitmq等信息 (ip、端口、密碼等)。
**注意: 密碼是數字、含有特殊字符、沒有密碼的, 必須加上單引號。 ( 如: 你的密碼是:00000, 必須寫成:'00000', 密碼沒有的,必須寫成:'' )**
4. 修改 nacos 中的[mysql.yml](https://github.com/zuihou/lamp-cloud/blob/master/01-third-party/nacos/clientConfig/DEFAULT_GROUP/mysql.yml)配置文件:
mysql.yml 文件配置如下,其他數據庫需要重點修改 lamp.druid.* 中的信息!
~~~
lamp:
durid:
username: 'root'
password: 'root'
# 生產使用原生驅動,開發使用p6spy驅動打印日志
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/lamp\_defaults?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&nullCatalogMeansCurrent=true
database:
multiTenantType: SCHEMA
tenantDatabasePrefix: lamp_base # 網關、example、Demo 服務改值需要配置為 lamp_extend
~~~
5. 修改 [lamp-cloud/src/main/filters/config-dev.properties](https://github.com/zuihou/lamp-cloud/blob/master/src/main/filters/config-dev.properties) 文件的的配置, 將nacos 的ip 、端口、namespace、username、password 修改成自己剛創建的命名空間!!!
db.dataId 可選項: mysql.yml 、oracle.yml 、sqlserver.yml
> 強烈建議namespace跟我的保持一致,減少出錯概率!!!
~~~
# ip 可以配置成自定義域名,并在hosts文件配置映射,解決切換網絡時nacos不可用的bug
nacos.ip=127.0.0.1
nacos.port=8848
nacos.namespace=b16f7baf-56e7-4f4e-a26c-425ee0668016
nacos.username=nacos
nacos.password=nacos
nacos.seata.namespace=3cca7d98-3b1c-44d3-90e5-86abaaf0048a
# 程序啟動時,加載的數據庫配置文件 可選項: mysql.yml oracle.yml sqlserver.yml
db.dataId=mysql.yml
# seata 的 grouplist ip
seata.ip=127.0.0.1
# seata 的 grouplist 端口
seata.port=8091
# window系統,會在當前項目代碼所有盤的根路路徑自動創建,所以無需修改,如:d://data//projects/logs
# mac 系統和linux系統,需要手動創建 /data/projects/logs 目錄,或者修改成別的已經存在且有寫入權限的目錄。
# mac系統創建目錄并授權:
# mkdir -p /data/projects/logs/
# chown -R ${USER}:wheel /data/projects/logs
logging.file.path=/data/projects/logs
sentinel.dashboard=127.0.0.1:8088
~~~
6. 修改項目日志存放路徑,位置:[lamp-cloud/src/main/filters/config-dev.properties](https://github.com/zuihou/lamp-cloud/blob/master/src/main/filters/config-dev.properties) 中的 `logging.file.path`
7. 編譯項目, 參考 [工程導入](工程導入md) 將 [lamp-cloud](https://github.com/zuihou/lamp-cloud) 和 [lamp-util](https://github.com/zuihou/lamp-util) 同時導入到一個IDEA工作空間, 并先install lamp-util,成功后在install lamp-cloud.
8. 編譯成功后, 驗證所有服務的 `lamp-cloud/lamp-*/lamp-*-server/target/classes/bootstrap.yml` 文件, `@nacos.*@` 是否成功替換為 [config-dev.properties](https://github.com/zuihou/lamp-cloud/blob/master/src/main/filters/config-dev.properties) 中的內容.

# 啟動項目
1. 先確保`nacos`、`MySQL`、`Redis`、`RabbitMQ`(可選)、`Seata`(可選)等基礎服務是否啟動成功
2. 逐一啟動 [OauthServerApplicaiton](https://github.com/zuihou/lamp-cloud/blob/master/lamp-oauth/lamp-oauth-server/src/main/java/top/tangyh/lamp/OauthServerApplication.java)、[TenantServerApplicaiton](https://github.com/zuihou/lamp-cloud/blob/master/lamp-tenant/lamp-tenant-server/src/main/java/top/tangyh/lamp/TenantServerApplication.java)、[AuthorityServerApplicaiton](https://github.com/zuihou/lamp-cloud/blob/master/lamp-authority/lamp-authority-server/src/main/java/top/tangyh/lamp/AuthorityServerApplication.java)、[MsgServerApplicaiton](https://github.com/zuihou/lamp-cloud/blob/master/lamp-msg/lamp-msg-server/src/main/java/top/tangyh/lamp/MsgServerApplication.java)、[FileServerApplicaiton](https://github.com/zuihou/lamp-cloud/blob/master/lamp-file/lamp-file-server/src/main/java/top/tangyh/lamp/FileServerApplication.java)、ActivitiServerApplication、[GatewayServerApplicaiton](https://github.com/zuihou/lamp-cloud/blob/master/lamp-gateway/lamp-gateway-server/src/main/java/top/tangyh/lamp/GatewayServerApplication.java)、[MonitorApplication](https://github.com/zuihou/lamp-cloud/blob/master/lamp-support/lamp-monitor/src/main/java/top/tangyh/lamp/MonitorServerApplication.java)
# 驗證是否啟動成功
1. 打開 [nacos控制臺](http://localhost:8848/nacos) 若看到下圖,則說明服務注冊成功

2. 或者打開項目控制臺,看到打印的如圖信息說明啟動成功。

3. 訪問以下地址, 能看到Swagger文檔
```
認證服務文檔:http://127.0.0.1:8773/doc.html
工作流服務文檔:http://127.0.0.1:8779/doc.html
租戶服務文檔:http://127.0.0.1:8771/doc.html
權限服務文檔:http://127.0.0.1:8764/doc.html
文件服務文檔:http://127.0.0.1:8765/doc.html
消息服務文檔:http://127.0.0.1:8768/doc.html
gateway網關聚合文檔:http://127.0.0.1:8760/api/doc.html
```
> 既可以直接訪問每個服務的swagger文檔,也能通過網關聚合所有后端服務的接口至網關文檔。
# 如果看著文檔還是無法啟動成功, 建議看下視頻
鏈接: https://pan.baidu.com/s/1BfhOIlCiAVFjngKzp0v-ag
提取碼: 8683
- 簡介
- 會員版
- 3.x和4.x的區別
- 新手必讀
- 如何高效提問
- 項目地址
- 項目截圖
- 架構介紹
- 開發規范
- 租戶模式介紹
- lamp-web和lamp-web-plus的區別
- lamp-cloud和lamp-boot區別
- 免費視頻&軟件下載
- 文檔反饋
- lamp-cloud
- 服務介紹
- 環境要求
- 工程導入
- nacos啟動(單機版)
- nacos啟動(集群版)
- 將配置文件導入Nacos
- seata啟動(單機版)
- DATASOURCE模式啟動(會員版)
- SCHEMA模式啟動
- COLUMN模式
- NONE模式
- lamp-web啟動
- lamp-web生產部署
- lamp-web-plus啟動(會員版)
- lamp-web-plus生產部署
- lamp-boot
- 環境要求
- 工程導入
- DATASOURCE模式啟動(會員版)
- SCHEMA模式啟動
- COLUMN模式啟動
- NONE模式啟動
- lamp-web啟動
- lamp-web生產部署
- lamp-web-plus啟動(會員版)
- lamp-web-plus生產部署
- 功能介紹
- 租戶設置
- 數據源配置(會員版)
- 租戶管理
- 超級用戶
- 工作臺
- 通知公告
- 組織管理
- 機構管理
- 崗位管理
- 用戶管理
- 資源中心
- 消息中心
- 短息模版
- 短信中心
- 附件管理
- 流程管理
- 流程部署
- 模型管理
- 系統設置
- 菜單管理
- 角色管理
- 字典管理
- 地區管理
- 參數管理
- 操作日志
- 登錄日志
- 在線用戶
- 應用管理
- 網關管理
- 限流規則
- 組織訪問
- 開發者管理
- 定時任務
- 接口文檔
- Nacos
- 服務監控
- 數據庫監控
- 緩存監控
- zipkin監控
- SkyWalking監控
- 常用配置
- 如何保證我的代碼能更新到最新代碼
- 序列化和反序列化
- 修改日志級別
- 文件上傳&下載&預覽
- 修改租戶模式
- 分頁
- 導入導出
- 請求放行(忽略token&忽略URI權限&忽略租戶編碼)
- 異常處理
- 全局返回
- 參數校驗(會員版)
- 系統日志
- 自研權限認證(URI、按鈕、菜單)
- 數據權限(舊)
- 數據庫配置
- Mybatis配置
- 更多數據庫/數據源/Mybaits配置
- Redis(緩存)配置
- RabbitMq配置
- 灰度發布
- 上手開發
- 表結構整理
- 項目結構&依賴&調用流程介紹
- 生成一個新服務
- 生成后端代碼
- 生成前端lamp-web代碼
- 生成前端項目lamp-web-plus代碼
- 跨域處理
- Swagger文檔調試技巧
- FeignClient接口調用
- 多租戶實現原理
- 分布式事務
- Zipkin配置(過時)
- SkyWalking配置
- 代碼生成器和自動回顯組件使用介紹
- lamp-util原理解析
- 全局注解(lamp-annotation)
- 核心包(lamp-core)
- 自動回顯(lamp-echo-starter)
- 權限控制(lamp-security-starter)
- 當前登錄用戶信息(lamp-jwt-starter)
- 緩存(lamp-cache-starter)
- SpringBoot全局配置(lamp-boot-util)
- SpringCloud全局配置(lamp-cloud-starter)
- 數據源&持久層配置(lamp-databases)
- 對象屬性復制(lamp-dozer-starter)
- 操作日志(lamp-log-starter)
- 消息隊列(lamp-mq-starter)
- 在線文檔(lamp-swagger2-starter)
- 前后端表單統一驗證(lamp-validator-starter)
- 防止Xss攻擊(lamp-xss-starter)
- 生產部署
- 部署前言
- jar部署