centos上 安装部署国产数据库阿里云自主研发的 Polardb-x 【emanlee】

参考:https://blog.csdn.net/GGBond_Max/article/details/149192341

 

1) PolarDB-X,高度兼容 MySQL,不是100%兼容MySQL

2)没有Windows安装版本,只有Linux安装版。

3)MySQL是免费的(当前和今后),PolarDB-X当前用户和生态,当前免费以后不一定免费;

 

 

 

 

PolarDB 分布式版

PolarDB for Xscale,简称“PolarDB-X”,是阿里云自主研发的高性能云原生分布式数据库产品,其采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,具备企业级、云原生、高可用、高度兼容 MySQL 系统及生态等特点。

 

1、下载官网中的rpm包

PolarDB_PolarDB社区_开源社区_数据库_阿里云

https://openpolardb.com/download

图片

 

不能用wget下载,只能在网页上点击下载,之后,发送到centos服务器上  。

 

2、安装rpm包

yum install -y <下载的rpm>
 yum install -y t-polardbx-engine-8.4.19-20241112.el7.x86_64.rpm
 
 
=====================================================
(base) [root@ibiomed software]#  yum install -y t-polardbx-engine-8.4.19-20241112.el7.x86_64.rpm
已加载插件:langpacks, nvidia
正在检查 t-polardbx-engine-8.4.19-20241112.el7.x86_64.rpm: t-polardbx-engine-8.4.19-20241112.el7.x86_64
t-polardbx-engine-8.4.19-20241112.el7.x86_64.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 t-polardbx-engine.x86_64.0.8.4.19-20241112.el7 将被 安装
--> 解决依赖关系完成
cuda-rhel7-11-0-local                                                                                                                                |
docker-ce-stable/x86_64                                                                                                                              |
docker-ce-stable/x86_64/primary_db                                                                                                                   |
elrepo                                                                                                                                               |
epel/x86_64/metalink                                                                                                                                 |
https://nvidia.github.io/libnvidia-container/centos7/x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
正在尝试其它镜像。
To address this issue please refer to the below wiki article 

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

mysql-connectors-community/x86_64                                                                                                                    |
mysql-connectors-community/x86_64/primary_db                                                                                                         |
mysql-tools-community/x86_64                                                                                                                         |
mysql-tools-community/x86_64/primary_db                                                                                                              |
mysql56-community/x86_64                                                                                                                             |
nux-dextop/x86_64                                                                                                                                    |
nvidia-container-runtime/x86_64/signature                                                                                                            |
nvidia-container-runtime/x86_64/signature                                                                                                            |
nvidia-docker/x86_64/signature                                                                                                                       |
nvidia-docker/x86_64/signature                                                                                                                       |

依赖关系解决

======================================================================================================================================================
 Package                             架构                     版本                                    源                                              
======================================================================================================================================================
正在安装:
 t-polardbx-engine                   x86_64                   8.4.19-20241112.el7                     /t-polardbx-engine-8.4.19-20241112.el7.x86_64   

事务概要
======================================================================================================================================================
安装  1 软件包

总计:2.8 G
安装大小:2.8 G
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : t-polardbx-engine-8.4.19-20241112.el7.x86_64 [##############################################################################################################################################################  正在安装    : t-polardbx-engine-8.4.19-20241112.el7.x86_64         1/1 
Copying /u01/xcluster80_20241112_current to /u01/xcluster80
Copying /u01/xcluster80_20241112_current to /u01/xcluster80_20241112
  验证中      : t-polardbx-engine-8.4.19-20241112.el7.x86_64         1/1 

已安装:
  t-polardbx-engine.x86_64 0:8.4.19-20241112.el7                         

完毕!
您在 /var/spool/mail/root 中有邮件
(base) [root@ibiomed software]# 

=====================================================
 
(base) [root@ibiomed ~]# updatedb
您在 /var/spool/mail/root 中有邮件
(base) [root@ibiomed ~]# locate polardbx_engine
/opt/polardbx_engine

 

3、创建用于启动数据库的用户 

  1. # 创建并切换到 polarx 用户
  2. useradd -ms /bin/bash polarx
  3.   
  4.  # 下面账号密码自己设置
  5.  echo "polarx:password@123" | chpasswd # 用户和密码
  6.  echo "polarx ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
  7. setfacl -m u:polarx:rwx /data/software  # 给用户读写执行权限
  8.  su - polarx
 
 

4、创建数据目录

  1.   
  2.  cd /data/software
  3.  mkdir polardbx-engine # 给polarx权限。
    setfacl -m u:用户名:rwx 目录路径  # 给用户读写执行权限
    setfacl -m u:polarx:rwx /data/software  # 给用户读写执行权限
     
  4.  cd polardbx-engine && mkdir log mysql run data tmp
[polarx@ibiomed polardbx-engine]$ ls
data  log  mysql  run  tmp

 

5、编辑polardb-x的配置文件

vim my.cnf     # 也可以是polardbx.cnf 
 

配置文件示例和注解:

[mysqld]
basedir = /opt/polardbx_engine                              # MySQL/PolarDB-X 引擎的安装目录(不建议更改
log_error_verbosity = 2                                     # 错误日志详细程度(0=错误,1=警告,2=信息)
default_authentication_plugin = mysql_native_password       # 设置默认的用户认证插件(此处使用传统的 mysql_native_password)
 
# 开启 GTID(全局事务 ID)功能,方便主从复制和 failover
gtid_mode = ON                                              # 启用 GTID 模式
enforce_gtid_consistency = ON                               # 强制 GTID 一致性,禁止不兼容 GTID 的事务
 
# 启用二进制日志功能(用于复制、恢复等)
log_bin = mysql-binlog                                      # 设置二进制日志的文件名(前缀)
binlog_format = row                                         # 使用行级日志格式(比 statement 更精确)
binlog_row_image = FULL                                     # 记录完整的行镜像(所有字段)
 
# 主从复制时的信息存储方式
master_info_repository = TABLE                              # 主库信息保存在数据库表中(更安全)
relay_log_info_repository = TABLE                           # 从库 relay log 信息保存在数据库表中(更安全)
 
# 以下配置项根据实际环境可修改
datadir = /data/software/polardbx-engine/data                        # 数据库存储目录(数据文件所在位置)
tmpdir = /data/software/polardbx-engine/tmp                          # 临时文件目录(例如排序中间结果)
socket = /data/software/polardbx-engine/tmp.mysql.sock               # MySQL 使用的 socket 文件路径
log_error = /data/software/polardbx-engine/log/alert.log             # 错误日志文件路径
port = 4886                                                 # MySQL 实例监听的端口号
 
# PolarDB-X 特有配置
cluster_id = 1234                                           # 集群 ID(用于标识所属集群)
cluster_info = 127.0.0.1:14886@1                            # 集群元信息,格式为 IP:port@id
 
# MySQL 服务的唯一标识(用于主从复制)
server_id = 114                                             # 实例 ID(同一复制集群中不能重复)
 

6、对数据库进行初始化

注意如果配置文件my.cnf 不在当前目录,记得把命令的 my.cnf 改成绝对路径

cd /data/software/polardbx-engine

/opt/polardbx_engine/bin/mysqld --defaults-file=my.cnf --initialize-insecure
  

7、启动数据库

cd /data/software/polardbx-engine

/opt/polardbx_engine/bin/mysqld_safe --defaults-file=my.cnf &

初始化数据库会比较久,根据电脑性能相关,预计2-3分钟

 

8、登入数据库

su - polarx

如果服务器上已经安装过MySQL的话,可以直接通过:mysql -h127.0.0.1 -P4886 -uroot 来登入。没有的话 yum install mysql 需要下载一个MySQL的客户端

 

(base) [root@ibiomed ~]# su - polarx
上一次登录:二 9月  2 23:04:07 CST 2025pts/0 上
[polarx@ibiomed ~]$ 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-20241112 Source distribution

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

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> 

执行如下SQL语句,检查GMS。

select * from information_schema.schemata;

 

[polarx@ibiomed ~]$ mysql -h127.0.0.1 -P4886 -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

 

 

9、登入后更新root用户密码

alter user 'root'@'localhost' identified by '123456';
 alter user 'root'@'localhost' identified by 'ti---16';
Query OK, 0 rows affected (0.01 sec)

 注意:设置了密码之后,以后登录时,用以下命令
mysql -h127.0.0.1 -P4886 -uroot -p
 
 
mysql> use mysql

mysql> SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;   #   Polardb-x 不能用 password,
SELECT host,user,Grant_priv,Super_priv FROM mysql.user;

图片

 


mysql> UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';

mysql> FLUSH PRIVILEGES;

mysql> GRANT ALL ON *.* TO 'root'@'localhost';

mysql> GRANT ALL ON *.* TO 'root'@'cn.cn.cn.cn';
 CREATE user 'root'@'202.200.111.000' identified by 'ti---16';
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';

mysql> GRANT ALL ON *.* TO 'root'@'202.200.111.000';
ERROR 1410 (42000): You are not allowed to create a user with GRANT

 CREATE user 'root'@'127.0.0.1' identified by 'ti---16';

mysql> GRANT ALL ON *.* TO 'root'@'127.0.0.1';
ERROR 1410 (42000): You are not allowed to create a user with GRANT
 

mysql> FLUSH PRIVILEGES;


mysql> quit

图片

 

 

10、创建一个新的用户用于外部连接

  1.  CREATE USER 'admin'@'%' IDENTIFIED BY 'newpass123'; # 创建新的用户(admin是用户名、%表示所有ip可以登入、by''中的内容是用户admin 的密码)
     
  2.  GRANT ALL PRIVILEGES ON mydb.* TO 'newuser'@'%'; # 配置mydb这个数据库的所有权限(数据库.表)
     
  3.  FLUSH PRIVILEGES; # 刷新权限使其生效
     
  4.  SHOW GRANTS FOR 'admin'@'%'; # 查看是否成功写入 
 
 

11、navicat连接polardb-x数据库

 

图片

 这里的端口和之前的my.cnf(polardbx.cnf)中的port配置对应

 

图片

 

可通过 telnet 服务器地址 端口 验证

C:\Users\Administrator>telnet 202.200.112.000  4886
Connecting To 202.200.112.000...Could not open connection to the host, on port 4886: Connect failed
开启防火墙

#  firewall-cmd --permanent --zone=public --add-port=4886/tcp
#  firewall-cmd --reload

再次测试,结果如下:

图片

 

 

 CREATE user 'root'@'%' identified by 'tie---16';

mysql> GRANT ALL ON *.* TO 'root'@'%';
mysql> FLUSH PRIVILEGES;

修改之后,可以成功连接。

 

图片

 

posted @ 2025-09-06 18:42  emanlee  阅读(398)  评论(0)    收藏  举报