社区生态 | openEuler、龙蜥Anolis、统信UOS三大主流操作系统下编译GreatSQL二进制包

这篇具有很好参考价值的文章主要介绍了社区生态 | openEuler、龙蜥Anolis、统信UOS三大主流操作系统下编译GreatSQL二进制包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为了更好地支持更多操作系统及相关生态,GreatSQL社区决定发布openEuler、龙蜥Anolis、统信UOS三个操作系统下的GreatSQL二进制包。相应的二进制包可以访问gitee.com上的 GreatSQL项目 https://gitee.com/GreatSQL/GreatSQL/releases/tag/GreatSQL-8.0.25-17下载。

本文简要记录在这三个操作系统下编译GreatSQL二进制包的过程。

  • 1. 编译环境

  • 2. 编译前准备工作

  • 3. 编译GreatSQL

  • 4. 初始化并启动GreatSQL数据库

  • 5. 运行sysbench测试

  • 附录:编译sysbench


1. 编译环境

本次编译都是采用鲲鹏916这个型号的CPU(泰山2280服务器系列):


    $ lscpu
    Architecture:          aarch64
    Byte Order:            Little Endian
    CPU(s):                64
    On-line CPU(s) list:   0-63
    Thread(s) per core:    1
    Core(s) per socket:    32
    Socket(s):             2
    NUMA node(s):          4
    Model:                 2
    BogoMIPS:              100.00
    L1d cache:             32K
    L1i cache:             48K
    L2 cache:              1024K
    L3 cache:              16384K
    NUMA node0 CPU(s):     0-15
    NUMA node1 CPU(s):     16-31
    NUMA node2 CPU(s):     32-47
    NUMA node3 CPU(s):     48-63
    Flags:                 fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid

上述 lscpu 是在物理机上执行的,实际编译环境则是在这个物理机上运行的虚机中,分配了8个CPU、16G内存。

查看操作系统发行版本

openEuler


    $ cat /etc/os-release

    NAME="openEuler"
    VERSION="22.03 LTS"
    ID="openEuler"
    VERSION_ID="22.03"
    PRETTY_NAME="openEuler 22.03 LTS"
    ANSI_COLOR="0;31"

龙蜥Anolis


    $ cat /etc/os-release
    NAME="Anolis OS"
    VERSION="8.6"
    ID="anolis"
    ID_LIKE="rhel fedora centos"
    VERSION_ID="8.6"
    PLATFORM_ID="platform:an8"
    PRETTY_NAME="Anolis OS 8.6"
    ANSI_COLOR="0;31"
    HOME_URL="https://openanolis.cn/"

统信UOS


    $ cat /etc/os-release
    PRETTY_NAME="UnionTech OS Server 20"
    NAME="UnionTech OS Server 20"
    VERSION_ID="20"
    VERSION="20"
    ID="uos"
    HOME_URL="https://www.chinauos.com/"
    BUG_REPORT_URL="https://bbs.chinauos.com/"
    VERSION_CODENAME="kongzi"
    PLATFORM_ID="platform:uelc20"
    [root@yejr-uos-aarch64 ~]#
    [root@yejr-uos-aarch64 ~]#
    $ cat /etc/uos-release
    UnionTech OS Server release 20 (kongzi)

并且都采用OS中预设的默认YUM源


    $ cat openEuler.repo
    #generic-repos is licensed under the Mulan PSL v2.
    #You can use this software according to the terms and conditions of the Mulan PSL v2.
    #You may obtain a copy of Mulan PSL v2 at:
    #    http://license.coscl.org.cn/MulanPSL2
    #THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
    #IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
    #PURPOSE.
    #See the Mulan PSL v2 for more details.

    [OS]
    name=OS
    baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler

    [everything]
    name=everything
    baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
    ...

龙蜥Anolis


    $ cat AnolisOS-AppStream.repo
    [AppStream]
    name=AnolisOS-$releasever - AppStream
    baseurl=http://mirrors.openanolis.cn/anolis/$releasever/AppStream/$basearch/os
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ANOLIS
    gpgcheck=1

统信UOS


    $ cat UniontechOS.repo
    [UniontechOS-$releasever-AppStream]
    name = UniontechOS $releasever AppStream
    baseurl = https://enterprise-c-packages.chinauos.com/server-enterprise-c/kongzi/1050/AppStream/$basearch
    enabled = 1
    username=$auth_u
    password=$auth_p
    gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-uos-release
    gpgcheck = 0
    skip_if_unavailable = 1

    [UniontechOS-$releasever-BaseOS]
    name = UniontechOS $releasever BaseOS
    baseurl = https://enterprise-c-packages.chinauos.com/server-enterprise-c/kongzi/1050/BaseOS/$basearch
    enabled = 1
    username=$auth_u
    password=$auth_p
    gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-uos-release
    gpgcheck = 0
    skip_if_unavailable = 1
    ...

2. 编译前准备工作

参考文档 麒麟OS+龙芯环境编译GreatSQL,提前安装必要的一些基础包

    $ dnf makecache
    $ dnf install --skip-broken -y automake bison bison-devel boost-devel bzip2 bzip2-devel clang \
    cmake cmake3 diffutils expat-devel file flex gcc gcc-c++ git jemalloc jemalloc-devel \
    graphviz libaio-devel libarchive libcurl-devel libevent libevent-devel libverto-libevent libevent-doc 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 readline-devel \
    snappy-devel tar time unzip vim wget zlib-devel

openEuler下就可以根据安装文档麒麟OS+龙芯环境编译GreatSQL中列出的所有包,包括 jemalloc 包。

下载安装jemalloc rpm包(rpm包依赖glibc版本,可能无法直接使用,可以自行下载源码包编译)

  • https://fedora.pkgs.org/36/fedora-aarch64/jemalloc-5.2.1-7.fc36.aarch64.rpm.html

  • https://fedora.pkgs.org/36/fedora-aarch64/jemalloc-devel-5.2.1-7.fc36.aarch64.rpm.html

  • 源码包 https://sourceforge.net/projects/jemalloc.mirror/files/

当然了,jemalloc并库不是必须的,用它的好处是可以优化内存管理性能等。有条件的话尽量启用,实在搞不定就放弃。

如果需要手动编译安装jemalloc,参考下面的方法即可:


    $ tar zxf jemalloc-5.2.1.tar.gz
    $ mv jemalloc-jemalloc-886e40b/
    $ ./autogen.sh
    $ ./configure --prefix=/usr && make && make install

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

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

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

  • 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-17/greatsql-8.0.25-17.tar.gz

将所有的源码包都放在 /opt 目录下。

编译安装patchelf:


    $ cd /opt && tar zxvf patchelf-0.14.tar.gz && cd patchelf-0.14 && ./bootstrap.sh && ./configure && make && make install

编译安装rpcsvc-proto:

 
    $ cd /opt && tar zxvf rpcsvc-proto-1.4.tar.gz && cd rpcsvc-proto-1.4/ && ./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

确认glibc版本:


    $ ldd --version

    ldd (GNU libc) 2.28
    Copyright (C) 2018 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    Written by Roland McGrath and Ulrich Drepper.

在本次编译过程中,openEuler 2203的glibc版本是2.34。

3. 编译GreatSQL

接下来编译GreatSQL二进制包


    $ cat /opt/greatsql-build-tarball.sh

    #!/bin/bash
    MAJOR_VERSION=8
    MINOR_VERSION=0
    PATCH_VERSION=25
    RELEASE=17
    REVISION="4733775f703"
    GLIBC=`ldd --version | grep ldd | tail -n 1 | awk '{print $NF}'`
    ARCH=aarch64
    OS=openEuler
    PKG_NAME=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-glibc${GLIBC}-${ARCH}BASE_DIR=/usr/local/${PKG_NAME}
    SRC_DIR=/opt
    BOOST_SOURCE_DIR=boost_1_73_0
    GREATSQL_SOURCE_DIR=greatsql-8.0.25-17
    JOBS=`nproc`

    # 如果你的OS环境下已安装jemalloc,建议也启用jemalloc编译选项
    # 如果没有安装jemalloc,则将本行参数注释掉
    CMAKE_EXE_LINKER_FLAGS=" -ljemalloc "

    cd ${SRC_DIR}/${GREATSQL_SOURCE_DIR} && \
    rm -fr bld && \
    mkdir bld && \
    cd bld && \
    cmake .. -DBOOST_INCLUDE_DIR=${SRC_DIR}/${BOOST_SOURCE_DIR} \
    -DLOCAL_BOOST_DIR=${SRC_DIR}/${BOOST_SOURCE_DIR} \
    -DCMAKE_INSTALL_PREFIX=${BASE_DIR} -DWITH_ZLIB=bundled \
    -DWITH_NUMA=ON -DCMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS}" \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release \
    -DWITH_TOKUDB=OFF -DWITH_ROCKSDB=OFF \
    -DCOMPILATION_COMMENT="GreatSQL (GPL), Release ${RELEASE}, Revision ${REVISION}" \
    -DMAJOR_VERSION=${MAJOR_VERSION} -DMINOR_VERSION=${MINOR_VERSION} -DPATCH_VERSION=${PATCH_VERSION} \
    -DWITH_UNIT_TESTS=OFF -DWITH_NDBCLUSTER=OFF -DWITH_SSL=system -DWITH_SYSTEMD=ON \
    -DWITH_LIBEVENT=system \
    && make -j${JOBS} && make -j${JOBS} install

不出意外的话,就可以编译生成二进制文件了。

4. 初始化并启动GreatSQL数据库

GreatSQL初始化,my.cnf可以参考这份模板:https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/my.cnf-example-greatsql-8.0.25-17

  

  $ groupadd mysql && useradd -g mysql mysql -s /sbin/nologin -d /dev/null

    $ echo '/usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/lib/' > /etc/ld.so.conf.d/greatsql.conf

    $ ldconfig -p | grep -i percona
     libperconaserverclient.so.21 (libc6,AArch64) => /usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/lib/libperconaserverclient.so.21
     libperconaserverclient.so (libc6,AArch64) => /usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/lib/libperconaserverclient.so
     
     
    # 确保没有找不到的动态库
    $ ldd /usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/bin/mysqld | grep -i not

    $ ./bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure

    $ ./bin/mysqld --defaults-file=/etc/my.cnf &

    $ lsof -p `pidof mysqld` | grep -i jemalloc
    mysqld  85204 mysql  mem       REG                8,3     471696   3329101 /usr/lib64/libjemalloc.so.2

5. 运行sysbench测试

准备跑一轮sysbench测试文章来源地址https://www.toymoban.com/news/detail-420342.html

 
    #先设置PATH
    $ export PATH=$PATH:/usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/bin

    $ mysqladmin create sbtest

    $ cd /usr/local/share/sysbench/
    $ sysbench /usr/local/share/sysbench/oltp_read_write.lua --mysql-host=localhost --mysql-user=root --mysql-password="" --mysql-socket=/usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/data/mysql.sock --mysql-db=sbtest --db-driver=mysql --tables=10 --table_size=10000 prepare

    $ for i in $(seq 1 3);do sysbench /usr/local/share/sysbench/oltp_read_write.lua --mysql-host=localhost --mysql-user=root --mysql-password="" --mysql-socket=/usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/data/mysql.sock --mysql-db=sbtest --db-driver=mysql --tables=10 --table_size=10000 --report-interval=1 --threads=8 --rand-type=uniform --db-ps-mode=disable  --time=900 run > greatsql-802517-$i.log; sleep 300; done

附录:编译sysbench

 
    #先做个动态库软链接
    $ cd /usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/lib/
    $ ln -s libperconaserverclient.so libmysqlclient.so
    $ cd /tmp/sysbench/
    $ ./autogen.sh
    $ ./configure --with-mysql-includes=/usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/include/ --with-mysql-libs=/usr/local/GreatSQL-8.0.25-17-openEuler-glibc2.34-aarch64/lib/ && make && make install

到了这里,关于社区生态 | openEuler、龙蜥Anolis、统信UOS三大主流操作系统下编译GreatSQL二进制包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 统信UOS安装mysql数据库(mariadb)-统信UOS安装JDK-统信UOS安装nginx(附安装包)

    银河麒麟的各种离线全套安装教程: https://blog.csdn.net/ACCPluzhiqi/article/details/131988147 1.统信UOS桌面系统安装mysql(mariadb) 2.统信UOS桌面系统安装JDK 3.统信UOS桌面系统安装nginx 统信UOS服务器操作系统目前没看到有哪家单位使用,基本都是银河麒麟服务器版 所以这里就不介绍统信

    2024年02月15日
    浏览(45)
  • 龙蜥(Anolis)OS8.6安装配置 VNC 服务器

    安装VNC,需要anolis os安装图形化界面,即在安装os时候选择Server with GUI 项即可。要在您的系统中安装VNC Server,请确保您具有系统上可用的以下要求: GNOME桌面环境 root访问 NFDNF / YUM软件包存储库 一、使用 YUM 安装 tigervnc-server: 二、配置用户映射: 需要手动先执行一次 vncs

    2024年01月19日
    浏览(34)
  • Anolis OS 龙蜥运维(一) 设置IP地址与安装Nginx

    老版本contos为:service network restart 备注: linux下,源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install);./configure --prefix --with; –prefix指的是安装路径,–with指的是安装本文件所依赖的库文件 备注:启动代码格式:安装目录地址 -c 配置文件地

    2024年02月13日
    浏览(32)
  • 统信UOS系统开发笔记(七):在统信UOS系统上使用linuxdeployqt发布qt程序

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131411975 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) 上一篇:《统信

    2024年02月11日
    浏览(30)
  • 统信UOS系统故障维护

      故障解决: 1 )重启在grub界面按字母E进编辑模式,如下:  2) 在Linux开头的那一行末尾添加参数 break=mount ,如下: 4)修改好后直接按 F10 或者 Ctrl+X ,进入initramfs模式,如下图:   5 )执行命令 fsck -y /dev/sda5 修复(根据自己电脑实际显示的硬盘名称修改盘符名称),如

    2024年02月10日
    浏览(28)
  • 统信UOS安装Mysql

    1.解压MySQL8.0.31压缩包 tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz 2.重命名 mv mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz/ mysql-8.0.31 3.复制到/usr/local sudo mv mysql-8.0.31 /usr/local/ 4.创建用户组 sudo groupadd mysql 5.添加用户 useradd -r -g mysql mysql 6.创建MySQL数据目录 mkdir -p /data 进入data目录 cd /data/ mkdir

    2023年04月20日
    浏览(27)
  • 统信UOS配置IP地址

    命令修改IP地址 配置文件修改IP地址

    2023年04月21日
    浏览(86)
  • 统信UOS配置SSH登录

    使用MobaXterm1_CHS1远程工具测试

    2024年02月12日
    浏览(27)
  • 统信UOS操作系统安装

    常见的linux国产修改版本,有深度的linux(Deepin)、红旗Linux、银河麒麟、中标麒麟Linux、统信UOS。大家可能听说过深度linux,在众多国产linux修改版本中,深度的体验可以说算得上不错的。而统信UOS开发和维护是深度团队,只不过Deepin是社区版系统,而统信UOS是商业版系统。今天

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包