服务器断电后PolarDB-X无法正常访问

1、问题描述

服务器偶尔会断电,突然发现无法访问了,在宿主机可以看到映射的3306端口有在监听,telnet能通,但是mysql-cli都无法连上,报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)。

期望结果:正常启动并保证数据正常

2、排查现象

2.1 docker状态正常

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
023c508ce9cb polardbx/polardb-x "/home/polarx/entryp…" 12 hours ago Up 12 hours 0.0.0.0:3306->8527/tcp, :::3306->8527/tcp tbds-polardb-x

2.2 docker logs异常片段

start polardb-x
cd to /home/polarx for continue
cn starts.
CN process dead. Try to restart it.
start cn...
metaDb env config not found: /home/admin/drds-server/env/config.properties, then use server_env.sh instead.
which: no jgroup in (/home/polarx/polardbx/build/run/polardbx-engine/u01/mysql/bin:/home/polarx/polardbx/build/run/bin:/home/polarx/polardbx/build/run/polardbx-engine/u01/mysql/bin:/home/polarx/polardbx/build/run/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)
cd to /home/polarx/polardbx/build/run/polardbx-sql/bin for workaround relative path
LOG CONFIGURATION : /home/polarx/polardbx/build/run/polardbx-sql/bin/../conf/logback.xml
tddl conf : /home/polarx/polardbx/build/run/polardbx-sql/bin/../conf/server.properties

2.3 容器内部mysql日志


2026-03-16 22:26:35.867 [main] WARN  c.a.p.b.SpringContextBootStrap$1 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/meta_datasource.xml]: Cannot resolve reference to bean 'metaDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metaDataSource' defined in class path resource [spring/meta_datasource.xml]: Invocation of init method failed; nested exception is com.aliyun.polardbx.binlog.error.PolardbxException: com.aliyun.polardbx.binlog.error.PolardbxException: meta db file is empty, cannot build meta db connection!
2026-03-16 22:26:35.867 [main] INFO  c.a.p.b.CustomPropertySourcesPlaceholderConfigurer - dynamic config scanner stopped!
2026-03-16 22:26:35.870 [main] ERROR c.a.p.binlog.daemon.DaemonBootStrap - ## Something goes wrong when starting up the daemon process:
com.aliyun.polardbx.binlog.error.PolardbxException: ERROR ## spring application context initial failed.
        at com.aliyun.polardbx.binlog.SpringContextBootStrap.boot(SpringContextBootStrap.java:54)
        at com.aliyun.polardbx.binlog.daemon.DaemonBootStrap.main(DaemonBootStrap.java:51)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/meta_datasource.xml]: Cannot resolve reference to bean 'metaDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metaDataSource' defined in class path resource [spring/meta_datasource.xml]: Invocation of init method failed; nested exception is com.aliyun.polardbx.binlog.error.PolardbxException: com.aliyun.polardbx.binlog.error.PolardbxException: meta db file is empty, cannot build meta db connection!
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1707)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1452)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:934)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)
        at com.aliyun.polardbx.binlog.SpringContextBootStrap$1.<init>(SpringContextBootStrap.java:45)
        at com.aliyun.polardbx.binlog.SpringContextBootStrap.boot(SpringContextBootStrap.java:45)
        ... 1 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metaDataSource' defined in class path resource [spring/meta_datasource.xml]: Invocation of init method failed; nested exception is com.aliyun.polardbx.binlog.error.PolardbxException: com.aliyun.polardbx.binlog.error.PolardbxException: meta db file is empty, cannot build meta db connection!
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330)
        ... 17 common frames omitted
Caused by: com.aliyun.polardbx.binlog.error.PolardbxException: com.aliyun.polardbx.binlog.error.PolardbxException: meta db file is empty, cannot build meta db connection!
        at com.aliyun.polardbx.binlog.MetaDbDataSource.scan(MetaDbDataSource.java:192)
        at com.aliyun.polardbx.binlog.MetaDbDataSource.init(MetaDbDataSource.java:105)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1930)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1872)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
        ... 24 common frames omitted
Caused by: com.aliyun.polardbx.binlog.error.PolardbxException: meta db file is empty, cannot build meta db connection!
        at com.aliyun.polardbx.binlog.MetaDbDataSource.getCnConnection(MetaDbDataSource.java:257)
        at com.aliyun.polardbx.binlog.MetaDbDataSource.scan(MetaDbDataSource.java:169)
        ... 32 common frames omitted

2.4 数据目录

挂载在宿主机的volume上,目前看/var/lib/docker/volumes/polardbx-data/_data/data/polardbx_meta_db_polardbx目录存在且目录下有很多ibd文件

3、部署环境

信创服务器: 中科海光C86-3G
信创操作系统: 银河麒麟服务器操作系统V10-SP1
PolarDB-X:Docker镜像polardbx/polardb-x:latest

展开
收起
化缘北辰 2026-03-17 10:23:53 18 分享 版权
0 条回答
写回答
取消 提交回答

PolarDB 是阿里云自研的云原生数据库产品家族,采用存储计算分离、软硬一体化设计,既拥有分布式设计的低成本优势,又具有集中式的易用性,可满足大规模应用场景需求。 2021年,阿里云先后宣布PolarDB PostgreSQL版与PolarDB分布式版开源,并持续推动开源版本迭代和演进,助力开发者通过开源版本快速使用阿里云数据库产品技术,并参与产品迭代中来。 开源历程参见:OpenPolarDB.com/about

还有其他疑问?
咨询AI助理