Docker 安装 GreatSql 数据库(可平替MySql)

GreatSQL 数据库是一款开源免费数据库,可在普通硬件上满足金融级应用场景,具有高可用高性能高兼容高安全等特性,可作为MySQL或Percona Server for MySQL的理想可选替换。本教程仅介绍单主机安装方式,集群高可用方案,详见官方文档。

一、拉取镜像

docker pull greatsql/greatsql

二、安装程序

1. 创建临时容器将配置文件copy到磁盘
# 创建目录,用于存储数据和配置文件
mkdir -p /data/greatsql/{conf,data}

# 创建临时容器
docker create --name greatsql greatsql/greatsql
# 复制配置文件到宿主机
docker cp greatsql:/etc/my.cnf /data/greatsql/conf
# 删除临时容器
docker rm greatsql
2. 为了简化设置,此先设置空密码,下边再进行修改
# 启动程序
docker run -d \
-p 3306:3306 \
--restart=unless-stopped \
--name greatsql --hostname=greatsql \
-e MYSQL_ALLOW_EMPTY_PASSWORD=1 \
-e MYSQL_INIT_MGR=1 \
-e MYSQL_MGR_START_AS_PRIMARY=1 \
-e MYSQL_MGR_ARBITRATOR=0 \
-e LOWER_CASE_TABLE_NAMES=0 \
# 映射配置文件
-v /data/greatsql/conf/my.cnf:/etc/my.cnf \
# 映射数据目录
-v /data/greatsql/data:/data/GreatSQL \
greatsql/greatsql

三、设置密码及远程访问

docker exec -it greatsql /bin/bash   # 进入容器,也可以使用 Portainer
mysql -u root                        # 在容器内登录mysql数据库

# 切换到mysql数据库
use mysql;
# 修改root密码,有密码强度要求
ALTER USER 'root'@'%' IDENTIFIED BY 'PE307I1P7PMnp1JQyiTGBSMqEhPq8zV7';
# 使修改立即生效
flush privileges;

四、扩展配置

1. 调整 sql_mode = only_full_group_by,修改 my.cnf配置文件,重启 greatsql容器后生效

[mysqld]
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
2. 安装使用 Rapid引擎使得GreatSQL能满足联机分析(OLAP)查询请求。
# 安装引擎
INSTALL PLUGIN Rapid SONAME 'ha_rapid.so';

# 为InnoDB表加上Rapid辅助引擎
greatsql> ALTER TABLE t1 SECONDARY_ENGINE = rapid;

-- 查看建表DDL,发现增加了 SECONDARY_ENGINE=rapid
greatsql> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `c1` int unsigned NOT NULL DEFAULT '0',
  `c2` varchar(30) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci SECONDARY_ENGINE=rapid
分享到:
本文链接:https://blog.renzicu.com/2024/03/523.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
THE END
二维码
打赏
文章目录
关闭
目 录