# TeleSQL **Repository Path**: teledb/telesql ## Basic Information - **Project Name**: TeleSQL - **Description**: TeleSQL原名TeleDB for MySQL,是天翼云科技有限公司开源的数据库,目标是建设具有全球影响力的兼容MySQL的分支。本开源项目采用GPL V2协议。 - **Primary Language**: C++ - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 73 - **Forks**: 9 - **Created**: 2021-12-10 - **Last Updated**: 2026-01-07 ## Categories & Tags **Categories**: database-service **Tags**: None ## README # 关于 TeleDB for MySQL --- TeleDB for MySQL是源于MySQL的分支版本,合并了Percona的部分源码,主要修改是增加了线程池以应对高并发访问的场景,并修复了部分bug。 TeleDB for MySQL完全兼容MySQL通信协议,可以作为MySQL或Percona Server的可选替代方案,用于线上生产环境。 # 下载 TeleDB for MySQL --- [戳此下载TeleDB](https://gitee.com/teledb/teledb-for-mysql) # 注意事项 --- 运行TeleDB for MySQL可能需要依赖jemalloc库,因此请先先安装上 ``` yum -y install jemalloc jemalloc-devel ``` 也可以把自行安装的lib库so文件路径加到系统配置文件中,例如: ``` [root@teledb]# cat /etc/ld.so.conf /usr/local/lib64/ ``` 而后执行下面的操作加载libjemalloc库,并确认是否已存在 ``` [root@teledb]# ldconfig [root@teledb]# ldconfig -p | grep libjemalloc libjemalloc.so.1 (libc6,x86-64) => /usr/local/lib64/libjemalloc.so.1 libjemalloc.so (libc6,x86-64) => /usr/local/lib64/libjemalloc.so ``` TeleDB for MySQL配置、初始化和启动方式可参考[MySQL安装文档](https://dev.mysql.com/doc/refman/5.7/en/installing.html)。 # 使用文档 --- 参考[MySQL官方文档](https://dev.mysql.com/doc/refman/5.7/en/) # 贡献指南 本文主要用于指导新手如何快速玩转TeleSQL数据库开源社区。 欢迎来到TeleSQL数据库开源社区!感谢您有意愿为这个项目贡献一份力量。无论是修复一个错别字、提交一个Bug、开发一个新功能,还是完善文档,每一种贡献都值得我们珍惜和感谢。本指南将引导您完成整个贡献流程。请花费几分钟时间阅读它,这会让您的贡献过程更加顺畅。 ## 开始之前 搜索现有议题:在提交Bug或新功能建议前,请先搜索 GitHub Issues,确认它是否已被报告或讨论。 熟悉架构:对于代码贡献,请先阅读项目的 README.md、ARCHITECTURE.md 和 DEVELOPMENT.md 文档,了解项目的核心设计与构建方式。 设置开发环境:确保您能成功在本地构建和运行项目。请参考 CONTRIBUTING.md 或 DEVELOPMENT.md 中的详细说明。 ## 如何贡献 ### 报告bug或漏洞 如果您发现了一个Bug或漏洞,请通过 GitHub Issues 提交报告。为了帮助我们快速定位和解决问题,请提供以下信息: 问题描述:清晰的描述问题。 复现操作:详细描述如何重现这个Bug的具体操作步骤。 预期行为:按计划应该产生的结果。 实际行为:实际产生的结果,包括完整的错误日志和跟踪报告。 环境信息:操作系统、数据库版本和硬件配置等。 可能的解决方案:如果您有其它修复思路,欢迎提出。 ### 建议新功能 我们欢迎任何增强TeleSQL数据库开源社区的想法~请在 GitHub Issues 中提交一个“Feature Request”类型的议题。议题内容请提供以下内容: 标题:使用清晰的标题概括功能建议。 描述:提供详细的描述,包括这个功能解决了什么痛点或问题? 期望解决方案:描述您设想的解决方案,及期待这个功能如何工作? 替代方案(可选):您可列举出其他解决方案? 背景信息:提供相关背景,是否有其他数据库实现了类似功能?附上相关链接。 ### 贡献代码 这是我们最期待的贡献方式!请遵循以下操作开发工作流。 ## 开发工作流 操作步骤 1. Fork 项目仓库 点击 GitHub 仓库页面的 "Fork" 按钮,将项目复制到您的 GitHub 账户下。 2. 克隆您的 Fork 将您Fork后的仓库克隆到本地机器。 `git clone https://github.com/your-username/your-db.git` `cd your-db` 3. 配置上游远程 将原始仓库添加为 upstream 远程仓库,以便轻松同步最新更改。 git remote add upstream https://github.com/original-org/your-db.git 4. 创建特性分支 请勿直接在 main 或 master 分支上直接进行修改。您可为您的更改创建一个新的分支,分支名应具有描述性。 \# 切换到主分支并获取最新代码 `git checkout main` `git fetch upstream` `git rebase upstream/main` \# 创建新分支 `git checkout -b feat/awesome-new-feature # 或 fix/annoying-bug, docs/update-readme` 5. 进行更改并编写测试 进行您的代码更改。 注意 如果您修改了代码逻辑,请同时编写或更新相应的单元测试或集成测试。高测试覆盖率是我们保持项目稳定的基石。 确保所有现有测试和新测试都能通过。 遵循项目的代码风格(通常由 .clang-format, .editorconfig 等文件定义)。 6. 提交更改 我们鼓励使用清晰、规范的提交信息。 `git add .` `git commit -m "feat(storage): implement awesome new feature"` 提交信息格式建议遵循 [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/): - feat: 新功能 - fix: Bug修复 - docs: 文档更新 - style: 代码格式调整(不影响逻辑) - refactor: 代码重构 - test: 测试相关 - chore: 构建过程或辅助工具变动 7. 保护分支同步 在推送前,确保您的特性分支是最新的,以避免合并冲突。 `git fetch upstream` `git rebase upstream/main` 8. 推送更改 将您的特性分支推送到您的Fork仓库。 `git push origin feat/awesome-new-feature` 9. 创建Pull Request (1) 访问您Fork后的GitHub仓库。 (2) 选择您刚刚推送的特性分支。 (3) 点击 "Compare & pull request"。 (4) 填写PR模板: (5) 标题:清晰描述PR的目的。 (6) 描述:详细说明更改内容、动机以及如何测试。如果解决了某个Issue,请使用关键字(如 Fixes #123)。 (7) 提交Pull Request。 ## 代码审查与合并 核心维护者将会审查您的PR,可能会提出修改意见。 请及时关注评论并参与讨论。根据反馈修改代码后,只需再次提交并推送到同一分支,PR会自动更新。 所有PR必须通过CI/CD流水线的所有检查(编译、测试、代码风格检查等)。 需要至少两位核心维护者的批准才能合并PR。 合并通常采用 Squash and Merge 方式,将您的所有提交合并为一个整洁的提交记录到主分支。 ## 贡献者许可协议 为了保护项目和用户,我们要求所有贡献者签署贡献者许可协议 (CLA)。 在您的第一个PR被合并之前,我们的CLA助手机器人会引导您完成在线签署流程。 这是一次性操作,签署后您未来的所有贡献都将被覆盖。 ## 寻求帮助 如果您在任何步骤遇到困难,欢迎寻求帮助: - 在您的PR中留言。 - 加入我们的TeleSQL数据库开源社区。 - 参与我们的社区论坛。 再次感谢您的宝贵时间和贡献! # 安全漏洞政策说明 本文介绍开源TeleSQL数据库的安全漏洞政策,包括如何报告漏洞、如何验证漏洞和如何修复漏洞等。 天翼云TeleSQL开源数据库团队欢迎您通过Issuse或邮件([teledbbrand@chinatelecom.cn](teledbbrand@chinatelecom.cn))向我们报告数据库产品可能存在的安全漏洞或安全缺陷,我们将第一时间处理并向您反馈结论。 为提高确认安全漏洞的效率,欢迎您在相关报告中明确发现产品或组件版本,复现问题的具体方法。相关安全漏洞在未经天翼云确认前,请勿向互联网或第三方公开。 天翼云数据库团队漏洞处理的大概流程: - 报告者将可能的安全漏洞报告给天翼云数据库团队; - 团队记录并第一时间安排专家复现验证,分析原因; - 与报告者私下沟通确认更多漏洞细节; - 无论是否确认为安全漏洞,均答复报告者具体原因和后续方案; - 若为超危、高危安全漏洞的且无法短时间修复的,将先输出临时解决方案,再进行完整修复; - 若为新增安全漏洞的,将按照国家相关规定,向国内相关漏洞收录组织报告; - 修复完成后,通过合适手段向天翼云数据库用户公开漏洞信息和修复方案。 # 法律声明 ​ 本文主要介绍TeleSQL数据库开源社区相关的法律政策声明,包括规则及TeleSQL数据库开源社区网站访问条件、个人信息保护、不承诺责任声明、著作权说明、商标、第三方链接、网站更新与变更和适用法律与争议解决方案等。 ​ 本法律声明包含TeleSQL数据库开源社区的若干法律政策。这些政策适用于本网站以及展示有本法律声明链接的其他TeleSQL数据库相关网站。 ## 规则及TeleSQL数据库开源社区网站访问条件 ​ TeleSQL数据库开源社区网站指由TeleSQL数据库开源社区运营的网站,包括域名为https://gitee.com/teledb/telesql 的网站,以及域名包含TeleSQL数据库开源社区且展示本法律声明链接的其他网站。以下规则适用于所有访问TeleSQL数据库开源社区网站的用户,TeleSQL数据库开源社区保留根据国家法律法规及市场行情等变化修改这些规则的权利。访问TeleSQL数据库开源社区网站的权利由TeleSQL数据库开源社区根据下列条款授予。如果您不同意下列任何条款、请停止使用本网址。如果您使用TeleSQL数据库开源社区网站提供的服务,您的使用行为将被视为对本声明全部内容的认可。对于违反这些规则的行为,TeleSQL数据库开源社区有权采取法律和公平的补救措施。 ## 个人信息的保护 ​ TeleSQL数据库开源社区尊重访问本网站的任何个人信息。当您访问本网站的时候可能被要求提供您个人的基本资料(如姓名、电子邮件、电话号码等),您可以自行选择是否提供。对于您提供的个人信息,TeleSQL数据库开源社区将根据中华人民共和国相关法律进行保密并严格保管,不会将这些信息以任何方式提供或展示给任何第三方,但下述情况除外: (一)在获取您明确同意情况下的共享。在向您告知第三方的名称或者姓名、联系方式、处理目的、处理方式和个人信息的种类,且获得您的明确同意后,TeleSQL数据库开源社区会向您同意的第三方共享您授权范围内的信息; (二)在法定情形下的共享。根据适用的法律法规、法律程序、诉讼/仲裁、政府的强制命令、监管要求而需要共享您的个人信息; (三)在法律要求或允许的范围内,为了保护您或社会公众的利益、财产或安全免遭损害而有必要提供您的个人信息给第三方; (四)为了保护国家安全、公共安全以及您和其他个人的重大合法权益而需要共享您的个人信息; (五)您自行公开的或者其他已经合法公开的您的个人信息。 ## 不承诺责任声明 ​ TeleSQL数据库开源社区网站所载的材料和信息,包括但不限于文本、图片、数据、观点、建议、网页或链接,TeleSQL数据库开源社区力图在网站上提供准确的材料和信息,但TeleSQL数据库开源社区并不保证这些材料和内容的准确、完整、充分和可靠性,并且明确声明不对这些材料和内容的错误或遗漏承担责任,也不对这些材料和内容作出任何明示或默示的、包括但不限于有关所有权担保、没有侵犯第三方权利、质量和没有计算机病毒的保证。TeleSQL数据库开源社区可以在没有任何通知或提示的情况下随时对TeleSQL数据库开源社区网站上的内容进行修改,为了得到最新版本的信息,请您定时访问TeleSQL数据库开源社区网站。TeleSQL数据库开源社区在TeleSQL数据库开源社区网站上所提及的非TeleSQL数据库产品或服务仅仅是为了提供相关信息,并不构成对这些产品、服务的认可或推荐。TeleSQL数据库开源社区并不就网址上提供的任何产品、服务或信息做出任何声明、保证或认可。鉴于TeleSQL数据库开源社区网站提供的部分服务属于电子公告牌(BBS)服务,任何企业或个人认为TeleSQL数据库开源社区网站内容(包括但不限于https://gitee.com/teledb/telesql会员发布的商品信息)可能涉嫌侵犯其合法权益,应该及时向TeleSQL社区https://gitee.com/teledb/telesql提出书面权利通知,并提供身份证明、权属证明、具体链接(URL)及详细侵权情况证明。TeleSQL数据库开源社区在收到上述法律文件后,将会依法尽快移除相关涉嫌侵权的内容。 ## 著作权说明 ​ TeleSQL数据库开源社区网站所载的所有材料或内容受版权法的保护,所有版权由TeleSQL数据库开源社区拥有,但注明引用其他方的内容除外。未经TeleSQL数据库开源社区或其他方事先书面许可,任何人不得将TeleSQL数据库开源社区网站上的任何内容以任何方式进行复制、经销、翻印、传播、以超级链路连接或传送、以镜像法载入其他服务器上、存储于信息检索系统或者其他任何商业目的的使用,但对于非商业目的的、用户使用的下载或打印(条件是不得修改,且须保留该材料中的版权说明或其他所有权的说明)除外。 ## 商标 ​ TeleSQL数据库开源社区网站上使用和显示的所有商标、标志皆属TeleSQL数据库开源社区所有,但注明属于其他方拥有的商标、标志、商号除外。未经TeleSQL数据库开源社区或其他方书面许可,TeleSQL数据库开源社区网站所载的任何内容不应被视作以暗示、不反对或其他形式授予使用前述任何商标、标志的许可或权利。未经事先书面许可,任何人不得以任何方式使用TeleSQL数据库开源社区的名称及TeleSQL数据库开源社区的商标、标记。 ## 第三方链接 ​ TeleSQL数据库开源社区网站可能保留有与第三方网站或网址的链接,访问这些链接将由用户自己作出决定,TeleSQL数据库开源社区并不保证这些链接上所提供的任何信息、数据、观点、图片、陈述或建议的准确性、完整性、充分性和可靠性。TeleSQL数据库开源社区提供这些链接仅仅在于提供方便,并不表示TeleSQL数据库开源社区对这些信息的认可和推荐,也不是用于宣传或广告目的。 ## 网站的更新与变更 ​ TeleSQL数据库开源社区网站提供的本网站上的内容仅为方便您获取信息,TeleSQL数据库开源社区网站有权单方面在任何时间,对本网站的内容进行变更或更新,此种变更或更新无需以通知您或任何第三方为前提。您承认并接受上述变更或更新。我们建议您定期访问本网站以尽快获知有关的更新或变更的信息。 ## 适用法律与争议解决 ​ 您同意,与您访问或使用本网站相关的所有事项,应根据中华人民共和国法律解释、理解和管辖。