申威架构编译安装GreatSQL指南

LinuxProbe 0x20 使用LNMP架构部署动态网站环境 LNMP动态网站部署架构是一套由Linux+ Nginx + MySQL + PHP组成的动态网站系统解决方案,具有免费、高效、扩展性强且资源消耗低等优良特性,目前正在被广泛使用。 源码包程序 在RPM(红帽软件包管理器)技术出现之前,Linux系统运维人员只能通过源码包的方式来安装各种服务程序,这是一件非常繁琐且极易消耗时间与耐心的事情;而且在安装、升级、卸载程序时还要考虑到与其他程序或函数库的相互依赖关系,这就要求运维人员不仅要掌握更多的Linux系统理论知识以及高超的实操技能,还需. 阅读详情

image.png

本实操指南,完整记录了在申威(SW_64)架构的统信(UOS)V20操作系统上,从源码编译并安装 GreatSQL 8.4.4-4 数据库的全过程。这项工作本身是数据库软件在国产化硬件平台上的重要适配实践,具有实际参考意义。

准备工作

基础环境与权限确认

# 切换为 root 用户,后续步骤需要最高权限
$ sudo su -

# 确认操作系统和架构
cat /etc/os-release
PRETTY_NAME="UOS Server 20"
NAME="UOS Server 20"

$ uname -m 
sw_64

# 确认 GLIBC 版本
$ ldd --version
ldd (GNU libc) 2.34

# 确认 gcc版本
$ gcc --version
gcc (GCC) 10.3.1

检查资源

# 检查内存
$ free -h
               total        used        free      shared  buff/cache   available
Mem:           507Gi        19Gi       482Gi       798Mi       5.6Gi       484Gi
Swap:           31Gi          0B        31Gi

# 检查磁盘空间
$ df -h
文件系统              容量  已用  可用 已用% 挂载点
devtmpfs              4.0M     0  4.0M    0% /dev
tmpfs                 254G     0  254G    0% /dev/shm
tmpfs                 102G  792M  101G    1% /run
tmpfs                 4.0M     0  4.0M    0% /sys/fs/cgroup
/dev/mapper/uos-root   69G   11G   54G   17% /
tmpfs                 254G   72K  254G    1% /tmp
/dev/sda2             974M  117M  790M   13% /boot
/dev/sda1             599M   22M  578M    4% /boot/efi
/dev/mapper/uos-home  778G   28K  738G    1% /home
tmpfs                  51G   16K   51G    1% /run/user/0
/dev/sde              7.3T   28K  6.9T    1% /run/media/root/dfe1ed7b-7ef2-4271-9db7-c8d0bcbf85e5

配置yum软件源与安装所需软件包

更新 yum 源

$ yum clean all
$ yum makecache
$ yum update

安装所需软件包

$ yum install -y automake bison bison-devel.sw_64 boost-devel.sw_64 bzip2 bzip2-devel clang cmake diffutils expat-devel.sw_64 file flex gcc gcc-c++ git jemalloc.sw_64 jemalloc-devel.sw_64 graphviz.sw_64 libaio-devel.sw_64 libarchive libcurl-devel.sw_64 libevent-devel.sw_64 libffi-devel libicu-devel libssh libtirpc libtirpc-devel.sw_64 libtool libxml2-devel zstd.sw_64 lz4.sw_64 make ncurses-devel.sw_64 ncurses-libs.sw_64 net-tools numactl numactl-devel.sw_64 openldap-clients.sw_64 openldap-devel.sw_64 openssl openssl-devel pam pam-devel perl perl-Env perl-JSON perl-Time-HiRes psmisc re2-devel.sw_64 readline-devel.sw_64 snappy-devel.sw_64 tar time unzip wget zlib-devel numactl-libs.sw_64 protobuf.sw_64 protobuf-lite protobuf-devel

部分软件包已做 sw_64 兼容适配并标注对应标识,相关替换操作已全部完成。若仍存在软件包未找到的情况,请自行进行替换或删除处理。

创建文件夹

$ mkdir -p /opt/greatsql_sw_build
$ cd /opt/greatsql_sw_build

下载 GreatSQL、boost、patchelf 源码包

# 分别下载各个源码包
curl -kOL -o greatsql-8.4.4-4.tar.xz https://product.greatdb.com/GreatSQL-8.4.4-4/greatsql-8.4.4-4.tar.xz
curl -kOL -o boost_1_77_0.tar.bz2 https://sourceforge.net/projects/boost/files/boost/1.77.0/boost_1_77_0.tar.bz2
curl -kOL -o patchelf-0.14.5.tar.gz https://gitee.com/GreatSQL/GreatSQL-Docker/raw/master/deppkgs/patchelf-0.14.5.tar.gz

# 统一解压
tar xf greatsql-8.4.4-4.tar.xz
tar xf patchelf-0.14.5.tar.gz
tar xf boost_1_77_0.tar.bz2

编译安装 patchelf

$ cd /opt/greatsql_sw_build/patchelf-0.14.5 && ./bootstrap.sh && ./configure && make && make install

#验证是否编译安装完成
$ patchelf --version
patchelf 0.14.5

编译安装 rpcgen

用 yum search rpcgen 查找,若 rpcgen.sw_64 包存在则直接安装即可

下载源码并解压

# 下载源码
curl -kOL -o rpcsvc-proto-1.4.4.tar.xz https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4.4/rpcsvc-proto-1.4.4.tar.xz
# 解压
tar xf rpcsvc-proto-1.4.4.tar.xz

进入源码目录

$ cd /opt/greatsql_sw_build/rpcsvc-proto-1.4.4

因为是申威机器config.sub文件未识别sw_64架构,需要修改

$ vim confing.sub

在245行添加sw_64标识

# 在245行
case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
        1750a | 580 \
        # 添加这行 | sw_64 \
        | sw_64 \
        | a29k \
        | aarch64 | aarch64_be \
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \

接着可以编译安装了

$ ./configure --build=sw_64
$ make
$ make install

验证安装成功

$ rpcgen --version
rpcgen (rpcsvc-proto) 1.4.4

编译GreatSQL

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

因为GreatSQL 本身适配sw_64,所以只需要修改一个文件即可

$ vim /opt/greatsql_sw_build/greatsql-8.4.4-4/storage/ndb/include/portlib/mt-asm.h +127

在第 127 行附近,或可通过搜索 defined(aarch64) 定位待修改的位置

补充以下内容,并保存退出

#elif defined(__aarch64__) || defined(__sw_64__)
/**
 * Use generic defaults for mb(), rmb(), wmb() see further down.
 */
// #define NDB_HAVE_XCNG
#define NDB_HAVE_CPU_PAUSE
#define cpu_pause() __asm__ __volatile__("yield")

接下来备份修改后的源码

$ tar zcf greatsql-8.4.4-4.tar.gz greatsql-8.4.4-4

开始编译

export MAJOR_VERSION=8 && \
MINOR_VERSION=4 && \
PATCH_VERSION=4 && \
RELEASE=4 && \
REVISION=d73de75905d && \
OPT_DIR=/opt/greatsql_sw_build && \
GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` && \
ARCH=`uname -p` && \
GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-UOS-glibc${GLIBC}-${ARCH} && \
MAKELOG=/tmp/greatsql-make.log && \
BOOST="boost_1_77_0" && \
DEST_DIR=${OPT_DIR}/${GREATSQL} && \
cd /opt/greatsql_sw_build/greatsql-8.4.4-4/ && \
rm -fr bld && \
mkdir bld && \
cd bld && \
cmake .. \
-DBUILD_CONFIG=mysql_release \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCOMPILATION_COMMENT="GreatSQL, Release ${RELEASE}, Revision ${REVISION}" \
-DMAJOR_VERSION=${MAJOR_VERSION} -DMINOR_VERSION=${MINOR_VERSION} -DPATCH_VERSION=${PATCH_VERSION} \
-DBOOST_INCLUDE_DIR=${OPT_DIR}/${BOOST} \
-DLOCAL_BOOST_DIR=${OPT_DIR}/${BOOST} \
-DCMAKE_INSTALL_PREFIX=${DEST_DIR} \
-DWITH_ZLIB=bundled \
-DWITH_NUMA=OFF \
-DWITH_TOKUDB=OFF \
-DWITH_ROCKSDB=OFF \
-DROCKSDB_DISABLE_AVX2=1 \
-DROCKSDB_DISABLE_MARCH_NATIVE=1 \
-DGROUP_REPLICATION_WITH_ROCKSDB=OFF \
-DALLOW_NO_SSE42=ON \
-DMYSQL_MAINTAINER_MODE=OFF \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_NDB=OFF \
-DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF \
-DWITH_NDBCLUSTER=OFF \
-DWITH_UNIT_TESTS=OFF \
-DWITH_SSL=system  \
-DOPENSSL_ROOT_DIR=/usr \
-DWITH_SYSTEMD=ON \
-DWITH_AUTHENTICATION_LDAP=OFF \
-DWITH_PAM=OFF \
-DWITH_LIBEVENT=bundled \
-DWITH_LDAP=system \
-DWITH_SYSTEM_LIBS=ON \
-DWITH_LZ4=bundled \
-DWITH_RAPIDJSON=bundled \
-DWITH_ICU=bundled \
-DWITH_ZSTD=bundled \
-DWITH_FIDO=bundled \
-DWITH_KEYRING_VAULT=ON \
-DWITH_PROTOBUF=system \
>> ${MAKELOG} 2>&1 && \
make -j200 >> ${MAKELOG} 2>&1 && \
make -j200 install >> ${MAKELOG} 2>&1
  1. 编译工作需要消耗大量 CPU 资源,根据机器配置不同,可能需要的时间也不同,请耐心等待。在普通的 16 核 PC 工作机上约耗时10分钟。
  2. 以服务器上有16核 CPU 为例,建议指定 “make -j14” 参数,不要把所有CPU都跑满。

完成后会将 GreatSQL 二进制包生成在 /opt/greatsql_sw_build 目录下:

$ ls
GreatSQL-8.4.4-4-UOS-glibc2.34-sw_64

这就完成 GreatSQL 二进制包的编译工作了。

如果编译过程中发生错误,则会将所有日志记录到/tmp/greatsql-make.log 文件中,可以打开该文件分析具体原因再解决。

安装GreatSQL

安装GreatSQL 参考 GreatSQL 用户手册 [统信UOS系统中安装GreatSQL]

  • https://greatsql.cn/docs/8.4.4-4/4-install-guide/3-4-uos-install.html

#初次进入要修改密码
greatsql> ALTER USER USER() IDENTIFIED BY 'GreatSQL@2026';
greatsql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.4.4-4   |
+-----------+
1 row in set (0.00 sec)

到此 GreatSQL 在 sw_64 机器上安装完成:)

rpcsvc-proto-1.4.tar.gz rpcsvc-proto, mysql依赖包,lamp环境,centos8中依赖软件包。rpcsvc-proto-1.4.tar.gz 立即下载

相关推荐

rpcsvc-proto-1.4.2.tar.xz

mysql依赖包,centos8中依赖软件包

第20章 使用 LNMP 架构部署动态网站环境

LNMP 动态网站部署架构是一套由Linux+Nginx+MySQL+PHP 组成的动态网站系统解决方案,具有免费、高效、可扩展性强且资源消耗低等优良特性,深受开发者的喜爱。本章将深入对比使用源码包安装服务程序与使用RPM 软件包安装服务程序的优劣,详细讲解如何手工编译源码包并安装各个服务程序。最后,我们将使用目前最流行的 WordPress 博客系统, 验证整个架构的部署效果。

鹿鸣天涯 974

深入浅出ASAP2标准:手把手教你编写和解析A2L文件(含Python示例代码)

本文深入解析ASAP2标准下的A2L文件,涵盖基础概念、文件结构及Python实现代码,帮助开发者掌握汽车ECU标定和测量中的关键数据管理技术。通过详细示例,展示如何编写和解析A2L文件,提升电控数据管理效率。

happy2的博客 1100

Linux学习笔记--27(使用LNMP架构部署动态网站环境)

LNMP动态网站部署架构是一套由Linux+Nginx+MySQL+PHP组成的动态网站系统解决方案,具有免费、高效、扩展性强且资源消耗低等优良特性。 源码包程序 使用源码包安装服务程序具有两个优势 源码包可移植性非常好,几乎可在任何linux系统中安装使用,而RPM软件包是针对特定系统和架构编写的指令集,必须严格执行环境才能顺利安装。 使用源码包安装服务程序时会有一个编译过程,可以更好地适应安装主机的系统环境,运行效率和优化程度强于RPM软件包安装的服务程序。 使用源码包安装服务程序归纳总结后只需4

oracle_drower的博客 1036

目标检测: 一文读懂 YOLOX

论文:YOLOX: Exceeding YOLO Series in 2021 论文链接:https://arxiv.org/pdf/2107.08430.pdf 代码链接:https://github.com/Megvii-BaseDetection/YOLOX. 文章目录1 为什么提出YOLOX2 YOLOX 网络架构3 YOLOX 实施细节3.1 backbone3.2 neck3.3 Head3.3.1 Decoupled Head3.3.2 Anchor-free3.4 如何计算Loss3.5 如

weixin_46142822的博客 3万+

问题:dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)

 1. 问题:Ubuntu安装软件的过程中出现依赖项的问题 “E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).” 按照指示执行如下两条命令都没有解决问题。 sudo apt-get -f install sudo apt-get --fix-broken ...

gloria_littlechi的博客 2万+

Centos 7.9 编译安装 lnmp

在安装好nginx的路径下/usr/local/nginx,创建用来存放网页配置文件,nginx.conf引入上面文件夹路径,在server{}里添加下面命令。在浏览器输入192.168.10.10测试,显示PHP的功能页面就表示LNMP部署完成,PHP调用完毕。centos7.9好像没有libzip的软件包,需要例外编译安装。这样LNMP服务就安装完成了!显示出端口号说明已经成功运行。

2303_79165856的博客 752

Netty UDP

UDP是一种无连接的协议,它并不在通信双方之间建立连接,而是直接将数据包从发送端发送到接收端。UDP不保证数据包的可靠传输,也不保证数据包的顺序,因此其传输速度通常比TCP快,且系统开销较小。然而,这也意味着UDP在某些情况下可能会丢失数据包或数据包到达的顺序错乱。

王小工小工历程 2027

申威架构下GreatSQL的编译优化与性能调优

数据库性能优化是系统架构设计的核心环节,特别是在国产化替代背景下,针对特定硬件平台的深度优化尤为重要。申威处理器作为国产RISC架构CPU,其指令集和微架构设计与x86/ARM存在显著差异。GreatSQL作为MySQL的重要分支,通过线程池优化、InnoDB增强等特性,在金融级场景中展现出优势。本文将详细介绍在申威平台编译部署GreatSQL的关键技术,包括指令集适配、编译参数优化、性能调优等实践方法,帮助开发者在国产化环境中构建高性能数据库服务。

weixin_31292729的博客 205

Coze:手把手教你搭建 小红书二创 智能体

前一篇 “” ,讲了如何针对需求进行拆解,并拆解 ”小红书二创“ 智能体,分为四个内容模块。通过上述步骤,开始一步一步构建 “小红书二创” 智能体。用来测试的小红书地址:http://xhslink.com/a/quxWEDAj3J48。

保持敏感!保持学习! 1436

Unity之如何实现TTS文本转语音(真人发音)

微软Azure TTS 文本转语音 服务 将文本转换为逼真的语音的语音服务功能 支持个各国语言,各种中文各种方言,支持不同音色男音女音 支持离线和在线版本

TxNet 5480

申威架构下GreatSQL源码编译与优化实践

在国产化技术推进的背景下,RISC架构处理器如申威CPU的软件生态建设成为关键。源码编译作为跨平台软件部署的核心技术,通过解析处理器指令集差异、解决依赖库兼容性问题,实现高性能数据库的本地化部署。以GreatSQL这一MySQL优化分支为例,其针对金融、电信等高可靠场景的特性,结合申威平台特有的国密算法支持和内存管理优化,展现出显著的性能提升价值。通过CMake定制编译参数、系统级调优和服务配置,可构建出稳定高效的数据库服务环境,为关键行业自主可控技术栈提供重要支撑。

weixin_31292729的博客 173

3、神经网络在汽车中的应用

本文探讨了神经网络在现代汽车中的多种应用,包括防抱死制动系统(ABS)、燃油喷射系统、自动驾驶辅助系统以及发动机故障诊断。通过详细分析这些系统的具体工作流程和神经网络的集成方式,展示了神经网络如何提升车辆的安全性、效率与智能化水平。

moss5的博客 234

申威平台编译GreatSQL数据库的完整指南

数据库源码编译是数据库部署中的重要环节,特别是在国产化替代背景下,针对特定硬件平台的编译优化尤为关键。申威处理器作为国产高性能计算芯片的代表,采用自主指令集架构,在关键行业基础设施中承担着重要角色。GreatSQL作为MySQL的重要分支版本,针对企业级场景进行了深度优化。本文将详细介绍在申威平台上从源码编译GreatSQL的全过程,包括环境准备、源码适配、编译优化、安装配置等关键步骤,并针对申威平台的特性提供性能调优建议和常见问题解决方案。

weixin_30086969的博客 102

HTML爱心字母雨(完整代码)

HTML语言实现爱心字母雨的完整代码。

AIGC 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Linux实验记录:使用LNMP架构部署动态网站环境

本文是一篇关于Linux系统初学者的实验记录。参考书籍:《Linux就该这么学》实验环境:虚拟机软件RedHatEnterpriseLinux[RHEL]8——红帽操作系统。

d3535的博客 2106

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

申威平台源码编译python

申威服务器编译安装python

2301_76622096的博客 1078

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LNMP环境的搭建

5、把文件复制到/usr/local/php/lib/php.ini路径下,并进入etc目录中,将该目录中的php-fpm.conf.default改名字为php-fpm/conf,把php-fpm.d下的文件www.conf.default移动到php-fpm.d并重命名为www.conf。10、进入到/usr/local/mysql/bin目录下,使用mysql用户,基于/usr/local/mysql文件夹,将数据文件放在/usr/local/.ysql/data目录下。

懂系长 1064

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 130

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 198

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 457

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 410

数据库主键选型指南:BIGINT vs VARCHAR

主键选型关乎数据库性能与架构演进。BIGINT(如雪花算法)在顺序写入、二级索引开销和分布式生成上优势显著,适合高并发核心链路;而传统 VARCHAR UUIDv4 因随机性导致频繁页分裂、存储膨胀,性能堪忧。UUIDv7 通过时间戳有序性实现高效追加写入,结合 BINARY(16) 存储可兼顾性能与安全,成为现代微服务新选择。关键在于:主键应稳定、无业务含义,优先选用趋势递增的紧凑类型,并根据场景合理采用双主键模式或 ULID 等替代方案。

小李同学的博客 301

自动化运维选型:四条技术路线的能力边界,以及它们为什么不能互相替代

自动化运维怎么选型?拆解配置管理、基础设施即代码、作业调度与场景化编排四条技术路线边界,分析账本归属与时间语义差异,给出四种架构组合与判断点,帮企业看清为何不能互相替代。

trainsignalcn的专栏 327

C++算法(七)

C++ stack算法题和一些客观题

2503_94479566的博客 370

不用再为文本搜索单独维护一套系统!全文检索深度解析

为了给商品、客服工单或者企业知识库增加一个搜索框,企业往往需要在业务数据库之外,再部署一套Elasticsearch。数据库保存商品、订单和用户等真实业务数据,搜索引擎保存另一份文本索引;两套系统之间,还需要通过CDC、消息队列或者同步程序持续传输数据。一个看似简单的搜索需求,最后可能变成两套集群、两份数据和一条必须保持稳定的数据链路。由此产生的问题并不少:数据库已经完成更新,搜索结果却可能尚未同步;业务查询同时涉及文本、库存、权限和订单状态时,应用需要在两个系统之间来回组合结果;

TiDB 社区干货传送门 250
上一篇: 数据库校验利器升级!gt-checksum v1.2.3 正式发布
下一篇: 慎用mysqldump与GTID自动定位:一次备份数据“丢失“的排查
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值