SQLProxy 项目教程

SQLProxy 项目教程

sqlproxy sqlproxy 项目地址: https://gitcode.com/gh_mirrors/sq/sqlproxy

1. 项目介绍

SQLProxy 是一个基于 Kingshard 二次开发的用于信创数据库对接的中间件项目。它致力于简化异构数据库的对接工作,目标是让现有基于 MySQL 的项目无缝迁移到其它类 SQL 型数据库,例如 Oracle、达梦等。SQLProxy 的主要工作是在中间件上对不同数据库的语法和协议进行转换,以便现有业务项目不改动或尽量少改动,使用原来的 MySQL 语法和驱动就能操作另一个信创数据库。

2. 项目快速启动

2.1 环境准备

确保你已经安装了 Go 语言环境,并且版本在 1.16 以上。

2.2 下载项目

git clone https://github.com/golfxiao/sqlproxy.git
cd sqlproxy

2.3 配置文件

etc 目录下的 sqlproxy_example.yaml 文件重命名为 sqlproxy.yaml,并根据需要修改配置文件。

# 示例配置文件
nodes:
  - name: demodb
    driver_name: dm
    max_conns_limit: 32
    datasource: dm://demouser:demopwd@192.168.23.216:5236

user_list:
  - user: testuser1
    password: testpwd1
  - user: testuser2
    password: testpwd2

schema_list:
  - user: testuser1
    nodes: [demodb]
  - user: testuser2
    nodes: [demodb]

2.4 编译和运行

go build
./sqlproxy -config ./etc/sqlproxy.yaml &

3. 应用案例和最佳实践

3.1 应用案例

假设一个应用服务 A 原来使用的是 MySQL 数据库,现在需要对接基于 Oracle 语法的达梦数据库。理论上代码层不用作大的改动,只需将数据库连接串由原来指向 MySQL 改为指向此 SQLProxy 中间件:

# 原始连接串
demouser:demopwd@tcp(192.168.23.215:3306)/pc3?timeout=1000ms&readTimeout=1000ms&writeTimeout=5000ms&charset=utf8

# 对接信创后连接串
testuser1:testpwd1@tcp(192.168.23.217:9696)/pc3?timeout=1000ms&readTimeout=1000ms&writeTimeout=5000ms&charset=utf8

3.2 最佳实践

  • 配置优化:根据实际业务需求,合理配置 max_conns_limitdatasource,避免资源浪费和连接超时。
  • 安全配置:确保 user_listschema_list 中的用户权限配置合理,避免未授权访问。
  • 日志监控:通过日志监控 SQLProxy 的运行状态,及时发现和解决问题。

4. 典型生态项目

SQLProxy 作为一个数据库中间件,可以与以下典型生态项目结合使用:

  • Kingshard:SQLProxy 基于 Kingshard 开发,可以与 Kingshard 结合使用,进一步提升数据库代理的性能和功能。
  • MySQL:SQLProxy 支持 MySQL 语法和协议,可以与 MySQL 数据库无缝对接。
  • Oracle:SQLProxy 支持 Oracle 语法和协议,可以与 Oracle 数据库无缝对接。
  • 达梦数据库:SQLProxy 支持达梦数据库语法和协议,可以与达梦数据库无缝对接。

通过这些生态项目的结合,SQLProxy 可以更好地满足不同业务场景下的数据库对接需求。

sqlproxy sqlproxy 项目地址: https://gitcode.com/gh_mirrors/sq/sqlproxy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周风队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值