之前测试过GreatSQL安装,基本上和MySQL无差异,

《GreatSQL配置到系统systemd服务》

《GreatSQL单机环境安装》

《国产数据库之-GreatSQL》

但是测试用的操作系统都是CentOS,非xc,碰巧看到GreatSQL社区推了这篇文章《麒麟OS+龙芯环境编译GreatSQL》,在xc环境安装GreatSQL,借鉴一下。

本次介绍如何在麒麟OS + 龙芯CPU的环境下将GreatSQL源码编译成二进制文件及RPM包等。

运行环境是Kylin Linux V10,

[root@ky10 ~]# cat /etc/system-release
Kylin Linux Advanced Server release V10 (Tercel)[root@ky10 ~]# uname -a
Linux ky10 4.19.90-23.19.v2101.a.ky10.loongarch64 #1 SMP Mon Sep 13 22:33:20 CST 2021 loongarch64 loongarch64 loongarch64 GNU/Linux

1、准备工作

1.1、配置yum源

开始编译之前,建议先配置好yum源,方便安装一些工具。本环节是龙芯的同学提供的,已经事先配置过了,忽略。

1.2、安装一波编译环境所需要的软件包

参考这份Dockerfile,安装相应的软件包,如果发现个别软件包在麒麟OS环境里没有的话,直接去掉即可,

dnf install -y automake bison bison-devel boost-devel bzip2 bzip2-devel clang \
cmake cmake3 diffutils expat-devel file flex gcc gcc-c++ gflags-devel git jemalloc jemalloc-devel \
graphviz gtest-devel libaio-devel libarchive libcurl-devel libevent-devel libffi-devel libicu-devel libssh \
libtirpc libtirpc-devel libtool libxml2-devel libzstd libzstd-devel lz4-devel \
lz4-static make ncurses-devel ncurses-libs net-tools numactl numactl-devel numactl-libs openldap-clients \
openldap-devel openssl openssl-devel pam pam-devel perl perl-Env perl-JSON perl-Memoize \
perl-Time-HiRes pkg-config psmisc re2-devel python-devel readline-devel rpcgen \
snappy-devel tar time unzip vim wget zlib-devel

Dockerfile参考:

https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/build-gs/Dockerfile/Dockerfile-centos8-x86

1.3、再下载安装几个必要的软件包

分别下载几个编译过程中需要的依赖包,

(1) boost

https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.gz

(2) patchelf

https://github.com/NixOS/patchelf/archive/refs/tags/0.14.tar.gz,下载后重命名为patchelf-0.14.tar.gz

(3) rpcsvc-proto

https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz

下载GreatSQL源码包,

https://product.greatdb.com/GreatSQL-8.0.25-16/greatsql-8.0.25-16.tar.gz

将所有的软件包都放在/opt目录下。

编译安装patchelf,

[root@ky10 ~]# cd /opt && tar zxvf patchelf-0.14.tar.gz && cd patchelf-0.14 && ./bootstrap.sh && ./configure && make && make install

编译安装rpcsvc-proto,

[root@ky10 ~]# cd /opt && tar zxvf rpcsvc-proto-1.4.tar.gz && cd rpcsvc-proto-1.4/ && ./configure && make && make install

2、编译GreatSQL

解压GreatSQL和boost缩源码包,

[root@ky10 ~]# cd /opt
[root@ky10 ~]# tar zxf /opt/greatsql-8.0.25-16.tar.gz -C /opt
[root@ky10 ~]# tar zxf /opt/boost_1_73_0.tar.gz -C /opt

在开始编译前,需要修改GreatSQL源码以适配龙芯架构平台,

[root@ky10 ~]# cd /opt/greatsql-8.0.25-16#大概要修改106行附近的内容
[root@ky10 ~]# vim extra/icu/source/i18n/double-conversion-utils.h +106#修改这行内容,增加对龙芯架构平台的支持defined(__mips__) || \
=>defined(__mips__) || defined(__loongarch__) || \

保存退出,再将代码重新打包压缩,之后就可以进行编译安装了,

[root@ky10 ~]# tar zcf greatsql-8.0.25-16.tar.gz greatsql-8.0.25-16

2.1、编译生成二进制文件包

用下面的命令进行编译,

[root@ky10 ~]# cd /opt/greatsql-8.0.25-16 && \
rm -fr bld && \
mkdir bld && \
cd bld && \
cmake .. -DBOOST_INCLUDE_DIR=/opt/boost_1_73_0 \
-DLOCAL_BOOST_DIR=/opt/boost_1_73_0 \
-DCMAKE_INSTALL_PREFIX=/usr/local/GreatSQL-8.0.25-16 \
-DWITH_ZLIB=bundled \
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release \
-DWITH_TOKUDB=OFF \
-DWITH_ROCKSDB=OFF \
-DCOMPILATION_COMMENT="GreatSQL (GPL), Release 16, Revision 8bb0e5af297" \
-DMAJOR_VERSION=8 \
-DMINOR_VERSION=0 \
-DPATCH_VERSION=25 \
-DWITH_UNIT_TESTS=OFF \
-DWITH_NDBCLUSTER=OFF \
-DWITH_SSL=system \
-DWITH_SYSTEMD=ON \
-DWITH_AUTHENTICATION_LDAP=OFF \
&& make -j16 VERBOSE=1 && make install

参数-j16设定为并行编译的逻辑CPU数量,可以指定为比逻辑CPU总数少一点,不要将所有CPU都跑满。

编译完成后,就会将二进制文件安装到/usr/local/GreatSQL-8.0.25-16目录下。

2.2、编译生成RPM文件包

由于GreatSQL自带的编译脚本还不能适配龙芯环境,所以需要手动编译生成RPM文件包。

可参考这份greatsql.spec文件(https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/build-gs/greatsql.spec),复制到本地保存成greatsql.spc文件,然后用下面的命令进行编译,

[root@ky10 ~]# mkdir -p /root/rpmbuild/SOURCES/
#将源码包和boost包复制过来
[root@ky10 ~]# cp greatsql-8.0.25-16.tar.gz boost_1_73_0.tar.gz /root/rpmbuild/SOURCES/
[root@ky10 ~]# cd /opt/greatsql-8.0.25-16/build-gs
[root@ky10 ~]# rpmbuild -bb greatsql.spec

就会开始编译工作,顺利的话就会生成相应的RPM文件包了。这就可以用在copy到其他服务器上直接安装使用了。

3、安装GreatSQL

执行下面的命令安装GreatSQL,

$ rpm -ivh greatsql*rpm

安装完成后,GreatSQL会自行完成初始化,可以再检查是否已加入系统服务或已启动,

$ systemctl status mysqld
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
...Docs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 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.7MCGroup: /system.slice/mysqld.service└─1137732 /usr/sbin/mysqld
...

3.1、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

3.2、登入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-16Copyright (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了。

3.3、创建新用户、测试库&表,及写入数据

修改完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)

成功。

4、搭建MGR集群

MGR集群的部署可以自己手动一步步操作,也可通过MySQL Shell快速完成,分别参考下面的文档即可,

  • 利用GreatSQL部署MGR集群

  • InnoDB Cluster+GreatSQL部署MGR集群

  • ansible一键安装GreatSQL并构建MGR集群

  • 在Docker中部署GreatSQL并构建MGR集群

5、下载龙芯平台GreatSQL二进制包

GreatSQL for龙芯平台的二进制包也已发布,下载链接,

https://gitee.com/GreatSQL/GreatSQL/releases/GreatSQL-8.0.25-16

找到"4. 龙芯/Loongson - Generic"标签下载即可。

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

近期更新的文章:

《上小学之前要学会的本领指引》

《北京全天候核酸检测场所》

《足球队巡礼 - 英超西汉姆联》

《小白学习MySQL - Generated Columns功能》

《再次了解max_allowed_packet》

近期的热文:

《"红警"游戏开源代码带给我们的震撼》

文章分类和索引:

《公众号1000篇文章分类和索引》

麒麟OS和龙芯环境编译安装GreatSQL相关推荐

  1. 麒麟OS+龙芯环境编译GreatSQL

    * GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1.准备工作 1.1.配置yum源 1.2.安装一波编译环境所需要的软件包 1.3.再下载安装几个必要的软件包 2.编 ...

  2. 麒麟 mips mysql_中标麒麟OS+龙芯MIPS适配开源中间件

    大纲 一 背景 二 目标 三 服务器 四 中间件适配 五 应用 六 部署 七 风险 八总结 九 最后rpm 制作 一 背景 19年国家开始筹备和实施安可工程.我司有幸参与其中. 二 目标 适配安装OS ...

  3. 技术分享|在Ubuntu下编译安装GreatSQL

    本文首发于GreatSQL社区,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1.准备工作 1.1.配置Ubuntu环境下的apt源配置文件 1.2.构建docker镜像 2.编译Grea ...

  4. 银河麒麟V10系统+飞腾CPU编译安装Qt-5.15.2

    银河麒麟V10系统+飞腾CPU编译安装Qt-5.15.2 一.准备工作 1.下载qt源码包 下载网址:https://download.qt.io/archive/qt/ 在任意空闲位置新建文件夹,并 ...

  5. arm64以及amd64和龙芯4000下安装pyqt:

    arm64以及amd64和龙芯4000下安装pyqt: 包下载地址: sip安装包地址:https://riverbankcomputing.com/software/sip/download qt源 ...

  6. 银河麒麟之esxi6.5环境下安装桌面版V10.1

    一.银河麒麟操作系统介绍   银河麒麟(Kylin)是由国防科技大学研制的开源服务器操作系统.此操作系统是863计划重大攻关科研项目,目标是打破国外操作系统的垄断,研发一套中国自主知识产权的服务器操作 ...

  7. Linux环境编译安装Mysql以及PHP中文乱码解决

    mysql安装  5.6以后可能会收费,所以选择5.1 以下从台湾中山大学镜像下载 1.首先要安装C++编译环境 # yum install gcc-c++ 2.下载解压 # wget http:// ...

  8. Linux环境编译安装Mysql以及补装innodb引擎方法

    mysql安装  5.6以后可能会收费,所以选择5.1 以下从台湾中山大学镜像下载 1.首先要安装C++编译环境 # yum install gcc-c++ 2.下载解压 # wget http:// ...

  9. CentOS 6.5 生产环境编译安装LNMP

    一.环境准备 1.操作系统安装:CentOS 6.5 64位最小化安装. 2.配置好IP.DNS.网关.主机名 3.配置防火墙,开启80.3306端口 vim /etc/sysconfig/iptab ...

最新文章

  1. 平流式隔油池计算_玻璃钢隔油池
  2. centos 6.5 安装openssl
  3. 教你用Python爬虫自制有道翻译词典
  4. log4j:WARN Please initialize the log4j system properly
  5. Oracle 12c应用连接VIP轮训负载均衡?
  6. matlab调用哈希表,ros与matlab联动使用
  7. 单个基因集富集分析泡泡图绘制
  8. 自动查询成绩的小玩意
  9. godaddy mysql 乱码_Godaddy主机乱码的解决方法 | Godaddy美国主机中文指南
  10. 转]python 结巴分词(jieba)学习
  11. 安卓抓包工具、方式选择
  12. dsp呼吸灯C语言编程,pwm呼吸灯原理及程序分享
  13. 1909升级卡64_Win10专业版下载_1909 版64位(2019年11月更新)
  14. 移动开发构架漫谈——反劫持实战篇
  15. 转载:等比数列的求和公式,及其推导过程
  16. qq2018内测android,社交无止境:QQ for Android 4.7内测版
  17. 赛门铁克symantec的安装与卸载-附下载地址(本人亲测)
  18. 让我十二点催她睡觉,我用 Python 轻松解决
  19. 基于卷积神经网络的猫种类的识别
  20. 速成实用硬笔字——最常用高频汉字前100

热门文章

  1. 简单三行JS代码实现滑动门
  2. jsp---JSTL核心标签
  3. 【报告分享】京东到家休闲食品即时消费趋势报告-京东到家数据研究院(附下载)
  4. Android 环信 自定义聊天气泡
  5. 技术美术面试问题整理
  6. flink-cdc,clickhouse写入,多路输出
  7. skype8.34 新版本不能启动/打开
  8. 云桌面可通过以下三种终端设备连接使用的
  9. 一桐对第三方SEO博客的一点拙见
  10. 2021固原一中高考成绩查询榜,【固原一中高考成绩实现新突破】