PolarDB-X Docker 部署与登录实战:从拉取镜像到客户端连接

张开发
2026/4/16 22:58:43 15 分钟阅读

分享文章

PolarDB-X Docker 部署与登录实战:从拉取镜像到客户端连接
PolarDB-X Docker 部署与登录实战从拉取镜像到客户端连接本文将带你一步步完成 PolarDB-X 的 Docker 部署并解决外部 IP 登录时遇到的“Access denied”权限问题最终使用客户端工具顺利连接数据库。背景PolarDB-X 是阿里云推出的分布式关系型数据库兼容 MySQL 协议。官方提供了 Docker 镜像方便开发者快速搭建本地测试环境。本文使用的镜像版本为docker.io/polardbx/polardb-x:v2.4.2_5.4.19在部署过程中你可能会遇到这样一个典型问题mysql客户端在本地127.0.0.1可以登录但从外部 IP如局域网其他机器登录时却提示“Access denied”。这是因为 PolarDB-X 保留了polardbx_root用户仅允许本地访问我们需要创建新的管理用户来解决。第一步下载镜像在终端中执行以下命令拉取指定版本的 PolarDB-X 镜像dockerpull polardbx/polardb-x:v2.4.2_5.4.19如果网络状况良好约几分钟后即可下载完成。可以通过docker images验证dockerimages|greppolardb-x第二步启动容器使用以下命令启动一个 PolarDB-X 容器并映射端口 8527dockerrun-d--namemy-polardbx\-p8527:8527\polardbx/polardb-x:v2.4.2_5.4.19参数说明-d后台运行--name自定义容器名称-p 8527:8527将宿主机的 8527 端口映射到容器的 8527 端口PolarDB-X 的 MySQL 协议端口等待约 1-2 分钟等待内部组件CN、DN、GMS完全启动。可通过docker logs my-polardbx查看启动日志。第三步使用命令行登录本地登录使用默认用户PolarDB-X 预置了polardbx_root用户默认密码为123456。在宿主机上执行mysql-h127.0.0.1-P8527-upolardbx_root-p123456如果出现类似如下欢迎信息说明登录成功Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 59 Server version: 5.6.29 Tddl Server (ALIBABA) ... MySQL [(none)]此时可以执行show databases;查看数据库列表。你会发现只有一个information_schema这是正常的因为 PolarDB-X 没有创建示例数据库。尝试从外部 IP 登录会遇到权限问题假设你的容器宿主机 IP 为127.0.0.1现在从另一台机器IP127.0.0.1执行mysql-h127.0.0.1-P8527-upolardbx_root-p123456你可能会遇到如下错误ERROR 1045 (28000): Access denied for user polardbx_root192.168.215.1 (using password: YES)这是因为polardbx_root用户被系统保留不允许从外部主机连接。直接执行CREATE USER polardbx_root%会触发错误ERROR 5107 (HY000): ... Can not modify polardbx_root since it is reserved for system第四步创建新用户以支持外部登录我们需要创建一个新的管理员用户并授予所有权限。使用本地方式登录127.0.0.1mysql-h127.0.0.1-P8527-upolardbx_root-p123456在 MySQL 提示符下执行以下 SQL将your_password替换为强密码-- 创建可以从任何 IP 连接的管理员用户CREATEUSERadmin%IDENTIFIEDBYyour_password;-- 授予所有权限GRANTALLPRIVILEGESON*.*TOadmin%WITHGRANTOPTION;-- 刷新权限可选FLUSHPRIVILEGES;验证用户是否创建成功SELECTuser,hostFROMmysql.user;第五步使用客户端工具登录方法一命令行客户端外部 IP在外部机器127.0.0.1上执行mysql-h127.0.0.1-P8527-uadmin-p输入你设置的密码即可成功登录。方法二图形化客户端如 Navicat、DBeaver、DataGrip以 DBeaver 为例新建 MySQL 连接。主机127.0.0.1端口8527用户名admin密码你设置的密码测试连接应显示“成功”。注意PolarDB-X 完全兼容 MySQL 5.6/5.7 协议因此任何支持 MySQL 的客户端都可以直接使用。常见问题与解决方法问题现象可能原因解决方案docker: command not foundDocker 未安装安装 Docker参考 docs.docker.com容器启动后立即退出内存不足12GB为 Docker 分配至少 12GB 内存本地登录也失败密码错误或容器未就绪执行docker logs my-polardbx检查日志默认密码为123456外部登录提示Access denied未创建外部用户按照第四步创建admin%用户CREATE USER报ERROR 5107试图修改保留用户使用其他用户名如admin、dba等连接超时防火墙阻止 8527 端口开放防火墙firewall-cmd --add-port8527/tcpLinux或关闭 Windows 防火墙总结通过本文你已经学会了下载 PolarDB-X Docker 镜像启动容器并映射端口使用mysql命令行从本地登录解决外部 IP 登录时的权限问题创建新用户使用图形化客户端连接 PolarDB-X。现在你可以在本地拥有一套完整的分布式数据库环境用于开发、测试和学习。PolarDB-X 还支持水平扩展、分布式事务等高级特性欢迎继续探索参考链接PolarDB-X 官方文档PolarDB-X Docker 部署指南本文操作环境CentOS 7.9Docker 20.10.17MySQL 客户端 8.0.28。如有差异请灵活调整。

更多文章