前言:

        本文适合于在中小企业场景中,需要使用mysql数据库,但又没有高负载,大并发,集群等高端需求(说白了没钱)的场景中,需要部署一套能够兼容mysql的国产化符合信创要求的数据库。那么PolarDB是比较好的选择。

        在安全可靠测评结果公告(2023年第1号)中我们就可以查到,阿里的PolarDB是通过了测试了。

        另外开源版本的性能各方面也都是够用了。

部署过程:

        一、服务器准备

        PolarDB提供了X86和ARM版本,作者这里还是以X86为例,cpu是海光的,操作系统是用的Anolis OS 8.9了。 虚拟化4核心16g的内存,由于直接做的生产服务器,硬盘分了160G做系统盘外,500G硬盘单独用来做数据存放。

        服务器操作系统的安装过程就不在这里详细说了,Anolis的安装过程与centos的安装几乎一样。也没做磁盘分区优化之类的。只是第二个磁盘单独做一个分区,挂在到 /data 目录下,用来存放PolarDB数据。

        二、安装过程

        1. 源码编译安装

        PolarDB的源码是开源在github上,有需要的可以编译安装。由于系统使用的是最小化安装,安装前需要提前安装一些依赖。系统安装完以后作者都习惯把系统做一个更新        

yum update -y
        安装依赖的包
yum install -y git make bison libarchive ncurses-devel libaio-devel cmake3 mysql rpm-build zlib-devel
yum install -y libtirpc-devel dnf-plugins-core 
yum config-manager --set-enabled PowerTools
yum groupinstall -y "Development Tools"
yum install -y gcc gcc-c++
        编译生成RPM        
# 拉取代码
git clone https://github.com/polardb/polardbx-engine.git --depth 1
# 编译生成 rpm
cd polardbx-engine/rpm && rpmbuild -bb t-polardbx-engine.spec

        注意国内现在访问github有些神叨叨的,作者可以网页打开git上的项目,但是就是通过git克隆不下来,那么直接把项目的整个zip打包,通过网页下载,在上传到服务器上去做编译也是可以的。编译升成的rpm包, 默认在 /root/rpmbuild/RPMS/x86_64/ 下。

        2.直接下载RPM包

        说实话编译安装是超级麻烦的,如果没有特殊的需求,建议还是直接用RPM包来安装的。官方已经提供了下载包。但注意需要下载正确的包。

        我们希望是兼容mysql,那么需要下载PolarDB-X,不要选择成PG的。同时有个两个包,作者在这里犯了错,耗费了些时间,没有注意看,直接下载了第一个。后来才发现aarch64 这个包是ARM64位cpu的。需要下载x86_64的RPM包。

        3.  RPM包进行安装        

yum install -y t-polardbx-engine-8.4.19-20250825_17558853.el7.x86_64.rpm

         没有使用rpm -ivh来安装主要是 yum install 会自动帮你去安装一些依赖项。

        4. 安装后的设置

         (1)创建数据库用户和相关目录文件       
# 创建并切换到 polarx 用户
useradd -ms /bin/bash polarx
echo "polarx:polarx" | chpasswd
echo "polarx    ALL=(ALL)    NOPASSWD: ALL" >> /etc/sudoers
chown polarx:polarx  /data   //需要把data目录的权限给到数据库用户
su - polarx
# 创建必要目录
cd  /data
mkdir polardbx-engine
cd polardbx-engine && mkdir log mysql run data tmp
        (2)创建数据库my.cnf配置文件
[mysqld]
basedir = /opt/polardbx_engine
log_error_verbosity = 2
default_authentication_plugin = mysql_native_password
gtid_mode = ON
enforce_gtid_consistency = ON
log_bin = mysql-binlog
binlog_format = row
binlog_row_image = FULL
master_info_repository = TABLE
relay_log_info_repository = TABLE
datadir =/data/polardbx-engine/data   #数据库文件存放的路径
tmpdir =/data/polardbx-engine/tmp
socket =/data/polardbx-engine/tmp.mysql.sock
log_error =/data/polardbx-engine/log/alert.log
port = 4886
cluster_id = 1234
cluster_info = 127.0.0.1:14886@1
server_id = 2712347953
[mysqld_safe]
pid_file =/data/polardbx-engine/run/mysql.pid
        (3)初始化和启动数据库
# 初始化,如果 my.cnf 不在当前目录,请将下述命令的 my.cnf 改成绝对路径
/opt/polardbx_engine/bin/mysqld --defaults-file=/data/polardbx-engine/my.cnf --initialize-insecure
# 启动
/opt/polardbx_engine/bin/mysqld_safe --defaults-file=/data/polardbx-engine/my.cnf &
        (4)创建用户可以远程访问数据库

        这个操作跟mysql一样,首先本机登录进数据库

mysql -h127.0.0.1 -P4886 -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.32-X-Cluster-8.4.19-20250825 Source distribution

Copyright (c) 2000, 2025, 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.

        如果有以上显示,表明数据库是已经安装成功了。下面需要创建一个用户能够远程登录数据库服务器。        

use mysql;
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO username;
flush privileges;
        (5)防火墙开放4886端口        
sudo firewall-cmd --zone=public --add-port=4886/tcp --permanent
sudo firewall-cmd --reload
       

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐