信创要求下,Mysql数据库替代方案单机版部署PolarDB
本文介绍了在中小企业场景下部署阿里云PolarDB国产数据库的实践过程。针对预算有限的信创需求环境,选择兼容MySQL的开源版PolarDB-X,详细说明了在AnolisOS8.9系统上的安装部署步骤,包括服务器准备、源码编译/RPM包安装两种方式、配置文件设置、数据库初始化及用户权限配置等关键环节,并提供了防火墙端口开放等后期配置建议,为中小企业实现国产化数据库替代提供可行方案。
前言:
本文适合于在中小企业场景中,需要使用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
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)