# greatsql **Repository Path**: openeuler-risc-v/greatsql ## Basic Information - **Project Name**: greatsql - **Description**: 本项目已经迁移至 AtomGit || This project has been migrated to AtomGit || Linked: https://atomgit.com/openeuler-risc-v/greatsql - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 18 - **Created**: 2023-03-27 - **Last Updated**: 2025-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 通知: 本项目已经正式迁移至 [AtomGit](https://atomgit.com/openeuler/greatsql) 平台 # 通知: 本项目已经正式迁移至 [AtomGit](https://atomgit.com/openeuler-risc-v/greatsql) 平台 # 关于 GreatSQL --- GreatSQL开源数据库专注于提升MGR可靠性及性能,支持InnoDB并行查询等特性,是适用于金融级应用的国内自主MySQL版本;可以作为MySQL或Percona Server的可选替换,用于线上生产环境;且完全免费并兼容MySQL或Percona Server。 ## 版本特性 --- GreatSQL除了提升MGR性能及可靠性,还引入InnoDB事务锁优化及并行查询优化等特性,以及众多BUG修复。 选用GreatSQl主要有以下几点优势: - GreatSQL是由万里数据库维护的MySQL分支 - 专注于提升MGR可靠性及性能,支持InnoDB并行查询特性 - 是适用于金融级应用的MySQL分支版本 - 地理标签,提升多机房架构数据可靠性 - 仲裁节点,用更低的服务器成本实现更高可用 - 单主模式下更快,选主机制更完善 - InnoDB表也支持并行查询,让CPU资源不再浪费 - 全新流控机制,让MGR运行更流畅不频繁抖动 - 相对官方社区版,MGR运行更稳定、可靠 - 其他... ## 注意事项 --- 运行GreatSQL可能需要依赖jemalloc库(推荐5.2.1+版本),因此请先安装上 ``` yum -y install jemalloc jemalloc-devel ``` 也可以把自行安装的lib库so文件路径加到系统配置文件中,例如: ``` [root@greatdb]# cat /etc/ld.so.conf /usr/local/lib64/ ``` 而后执行下面的操作加载libjemalloc库,并确认是否已存在 ``` [root@greatdb]# ldconfig [root@greatdb]# ldconfig -p | grep libjemalloc libjemalloc.so.2 (libc6,x86-64) => /usr/lib64/libjemalloc.so.2 libjemalloc.so (libc6,x86-64) => /usr/lib64/libjemalloc.so ``` ## 安装GreatSQL 执行下面的命令安装GreatSQL ``` #首先,查找GreatSQL $ yum search GreatSQL ... greatsql-client.x86_64 : GreatSQL - Client greatsql-devel.x86_64 : GreatSQL - Development header files and libraries greatsql-server.x86_64 : GreatSQL: Open source database that can be used to replace MySQL or Percona Server. greatsql-shared.x86_64 : GreatSQL - Shared libraries #然后安装 $ yum install -y greatsql-client greatsql-devel greatsql-server greatsql-shared ``` 安装完成后,GreatSQL会自行完成初始化,可以再检查是否已加入系统服务或已启动: ``` $ systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) ... Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 1137698 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 1137732 (mysqld) Status: "Server is operational" Tasks: 39 (limit: 149064) Memory: 336.7M CGroup: /system.slice/mysqld.service └─1137732 /usr/sbin/mysqld ... ``` ## my.cnf参考 RPM方式安装后的GreatSQL默认配置不是太合理,建议参考下面这份my.cnf文档: - [my.cnf for GreatSQL 8.0.25-16](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/my.cnf-example-greatsql-8.0.25-16) 调整文档中关于`datadir`目录配置等相关选项,默认 `datadir=/var/lib/mysql` 通常都会改掉,例如替换成 `datadir=/data/GreatSQL`,修改完后保存退出, 替换原来的 `/etc/my.cnf`,然后重启GreatSQL,会重新进行初始化。 ``` # 新建 /data/GreatSQL 空目录,并修改目录所有者 $ mkdir -p /data/GreatSQL $ chown -R mysql:mysql /data/GreatSQL # 重启mysqld服务,即自行完成重新初始化 $ systemctl restart mysqld ``` ## 登入GreatSQL 首次登入GreatSQL前,需要先找到初始化时随机生成的root密码: ``` $ grep root /data/GreatSQL/error.log [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dt_)MtExl594 ``` 其中的 **dt_)MtExl594** 就是初始化时随机生成的密码,在登入GreatSQL时输入该密码: ``` $ mysql -uroot -p'dt_)MtExl594' mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.25-16 Copyright (c) 2021-2021 GreatDB Software Co., Ltd Copyright (c) 2009-2021 Percona LLC and/or its affiliates Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> \s ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> ``` 首次登入立刻提醒该密码已过期,需要修改,执行类似下面的命令修改即可: ``` mysql> ALTER USER USER() IDENTIFIED BY 'GreatSQL-8025~%'; Query OK, 0 rows affected (0.02 sec) ``` 之后就可以用这个新密码再次登入GreatSQL了。 ## 创建新用户、测试库&表,及写入数据 修改完root密码后,应尽快创建普通用户,用于数据库的日常使用,减少超级用户root的使用频率,避免误操作意外删除重要数据。 ``` #创建一个新用户GreatSQL,只允许从192.168.0.0/16网络连入,密码是 GreatSQL-2022 mysql> CREATE USER GreatSQL@'192.168.0.0/16' IDENTIFIED BY 'GreatSQL-2022'; Query OK, 0 rows affected (0.06 sec) #创建一个新的用户库,并对GreatSQL用户授予读写权限 mysql> CREATE DATABASE GreatSQL; Query OK, 1 row affected (0.03 sec) mysql> GRANT ALL ON GreatSQL.* TO GreatSQL@'192.168.0.0/16'; Query OK, 0 rows affected (0.03 sec) ``` 切换到普通用户GreatSQL登入,创建测试表,写入数据: ``` $ mysql -h192.168.1.10 -uGreatSQL -p'GreatSQL-2022' ... # 切换到GreatSQL数据库下 mysql> use GreatSQL; Database changed # 创建新表 mysql> CREATE TABLE t1(id INT PRIMARY KEY); Query OK, 0 rows affected (0.07 sec) # 写入测试数据 mysql> INSERT INTO t1 SELECT RAND()*1024; Query OK, 1 row affected (0.05 sec) Records: 1 Duplicates: 0 Warnings: 0 # 查询数据 mysql> SELECT * FROM t1; +-----+ | id | +-----+ | 203 | +-----+ 1 row in set (0.00 sec) ``` 成功。 ## 版本历史 --- ### GreatSQL 8.0 - [GreatSQL 更新说明 8.0.25-16(2021-5-16)](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/changes-greatsql-8-0-25-16-20220516.md) - [GreatSQL 更新说明 8.0.25-15(2021-8-26)](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/changes-greatsql-8-0-25-20210820.md) ## MTR回归测试 GreatSQL已经在openEuler 20.03 (LTS-SP2) 环境下通过MTR回归测试,表明GreatSQL与openEuler开源操作系统完全兼容,功能齐全,测试完备。 相关MTR测试报告详见:[GreatSQL 8.0.25-16通过MTR回归测试](https://gitee.com/src-openeuler/greatsql/blob/master/greatsql-802516-mtr-passed.md)。 ## 更多使用文档 --- - [GreatSQL MGR FAQ](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/GreatSQL-FAQ.md) - [在Linux下源码编译安装GreatSQL](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/build-greatsql-with-source.md) - [利用Ansible安装GreatSQL并构建MGR集群](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/install-greatsql-with-ansible.md) - [在Docker中部署GreatSQL并构建MGR集群](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/install-greatsql-with-docker.md) - [MGR优化配置参考](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/mgr-best-options-ref.md) - [InnoDB并行查询优化参考](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/innodb-parallel-execute.md) - [利用GreatSQL部署MGR集群](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/using-greatsql-to-build-mgr-and-node-manage.md) - [MySQL InnoDB Cluster+GreatSQL部署MGR集群](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/mysql-innodb-cluster-with-greatsql.md) - [利用systemd管理MySQL单机多实例](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/build-multi-instance-with-systemd.md) ## 专栏文章 - [深入浅出MGR专栏文章](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/deep-dive-mgr),深入浅出MGR相关知识点、运维管理实操,配合「实战MGR」视频内容食用更佳。 ## 相关资源 - [GreatSQL-Docker](https://gitee.com/GreatSQL/GreatSQL-Docker),在Docker中运行GreatSQL。 - [GreatSQL-Ansible](https://gitee.com/GreatSQL/GreatSQL-Ansible),利用ansible一键安装GreatSQL并完成MGR集群部署。 ## 问题反馈 --- - [问题反馈 gitee](https://gitee.com/GreatSQL/GreatSQL-Doc/issues) ## 联系我们 --- 扫码关注微信公众号 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0802/141935_2ea2c196_8779455.jpeg "greatsql社区-wx-qrcode-0.5m.jpg")