当前位置: 首页 > news >正文

doris2.1.8连接报错ERROR 1203 (42000): Reach limit of connections解决办法

客户环境登录doris报错:

ERROR 1203 (42000): Reach limit of connections
这个报错原因是很明显了,用户的连接数超过了最大限制,但是解决却花费了不少时间,主要是通过AI搜索出来的都是错误的,不论是deepseek还是豆包都不行,说明doris的相关文档并没有被AI训练到或者用的太少了?

下面是AI的错误方法:

错误的方法大体是:

1.查看fe的参数,用show variables like这种方法就是错的,应该用SHOW FRONTEND CONFIG like '%max_connections%'

2.参数名称错误,doris fe的最大连接数限制是qe_max_connection而不是max_connections,这和mysql是不同的

3.就算配置了qe_max_connection并不起效果

下面是正确的方法:

首先qe_max_connection配置了全局的每个fe的最大连接数限制,但是针对每个用户,默认还会有一个资源的限制,其中就包括了cpu,负载,连接数等等的限制,而默认每个用户的连接数只有100

因此解决步骤如下:

1.如果是普通用户的连接超限了,可以用root登录,如果是root超限了,可以使用admin用户登录,默认admin用户是没有密码的

[dsg@dsgsync-sjzc ~]$ mysql -h192.168.11.230 -P9030 -uadmin                                     
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 25576
Server version: 5.7.99 Doris version doris-2.1.8-rc01-52396fbc88Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


登录之后查看qe_max_connection参数,以及当前的连接数信息:


MySQL [ods_his_portal56_his]> show frontend config like '%max_conn%';
+-------------------+-------+------+-----------+------------+---------+
| Key               | Value | Type | IsMutable | MasterOnly | Comment |
+-------------------+-------+------+-----------+------------+---------+
| qe_max_connection | 4096  | int  | false     | false      |         |
+-------------------+-------+------+-----------+------------+---------+
1 row in set (0.01 sec)MySQL [ods_his_portal56_his]> SELECT user, COUNT(*) AS connections FROM information_schema.processlist GROUP BY user;
+------+-------------+
| user | connections |
+------+-------------+
| root |         100 |
| dsg  |          54 |
+------+-------------+
2 rows in set (0.09 sec)MySQL [ods_his_portal56_his]> SELECT COUNT(*) AS total_connections FROM information_schema.processlist;
+-------------------+
| total_connections |
+-------------------+
|               154 |
+-------------------+
1 row in set (0.01 sec)

通过上面的查询可以看到,fe的总连接数限制是4096,当前总的连接数只有154,明显没有超过,但是root的连接数有100,达到了默认的最大限制,可以用下面命令查看root用户的资源限制

MySQL [ods_his_portal56_his]> SHOW PROPERTY FOR 'root';
+-------------------------------------+--------+
| Key                                 | Value  |
+-------------------------------------+--------+
| allow_resource_tag_downgrade        | false  |
| cpu_resource_limit                  | -1     |
| default_load_cluster                |        |
| default_workload_group              | normal |
| exec_mem_limit                      | -1     |
| insert_timeout                      | -1     |
| max_query_instances                 | -1     |
| max_user_connections                | 100    |
| parallel_fragment_exec_instance_num | -1     |
| query_timeout                       | -1     |
| resource_tags                       |        |
| sql_block_rules                     |        |
+-------------------------------------+--------+
12 rows in set (0.00 sec)

2.修改参数配置

如果是fe最大连接数超过限制了,那么必须修改qe_max_connection参数,此参数为静态参数,需要修改fe.conf,再重启fe生效

如果是其它的一些动态参数,则可以使用ADMIN SET FRONTEND CONFIG ("fe_config_name" = "fe_config_value");命令进行修改

如果fe最大连接数限制正常,是用户的属性限制了,则需要使用set property for 命令进行修改

MySQL []> SET PROPERTY FOR 'root' 'max_user_connections' = '1000';MySQL []> SHOW PROPERTY FOR 'root';
+-------------------------------------+--------+
| Key                                 | Value  |
+-------------------------------------+--------+
| allow_resource_tag_downgrade        | false  |
| cpu_resource_limit                  | -1     |
| default_load_cluster                |        |
| default_workload_group              | normal |
| exec_mem_limit                      | -1     |
| insert_timeout                      | -1     |
| max_query_instances                 | -1     |
| max_user_connections                | 1000   |
| parallel_fragment_exec_instance_num | -1     |
| query_timeout                       | -1     |
| resource_tags                       |        |
| sql_block_rules                     |        |
+-------------------------------------+--------+

目前针对用户的限制还没有一个默认的修改项,因此只能针对每个用户进行单独修改,如果新增了用户不要忘记创建的时候一并修改了

总结:

1.查看fe的参数使用SHOW FRONTEND CONFIG like 命令,而不是show variables,show variables只是查看会话的变量

2.修改fe的参数有种方法,针对静态参数只能修改fe.conf再重启fe,而针对动态参数,可以使用ADMIN SET FRONTEND CONFIG ("fe_config_name" = "fe_config_value");

命令进行修改,确定参数是否是动态还是静态参数,查看IsMutable列,false表示静态,true为动态

3. doris默认对用户有资源限制,不能统一修改,只能一个一个用户进行修改,使用show property命令查看用户的属性,例如:

SHOW PROPERTY FOR 'root';

使用set property命令进行设置,例如:

SET PROPERTY FOR 'root' 'max_user_connections' = '1000';

http://www.dtcms.com/a/271173.html

相关文章:

  • 使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
  • Oracle:使用ONLINE选项创建索引
  • 【内核基础精讲】I2C 子系统核心概念与结构全解析
  • 类与对象【下篇】-- 关于类的其它语法
  • 蓝凌EKP产品:属性转换器系统优化
  • c语言学习_函数递归2
  • 70、【OS】【Nuttx】【构建】配置 stm32 工程
  • STM32继电器万能控制设备
  • 【04】MFC入门到精通——MFC 自己手动新添加对话框模板 并 创建对话框类
  • SpringBoot集成文件 - 大文件的上传(异步,分片,断点续传和秒传)
  • 数据结构基础准备:包装类 泛型 泛型的上界 密封类
  • 零知开源——STM32F407VET6驱动SHT41温湿度传感器完整教程
  • 2023年全国青少年信息素养大赛Python编程小学组复赛真题+答案解析-北京赛区
  • idea 常用快捷键
  • Mysql中的日志-undo/redo/binlog详解
  • 学习open62541 --- [79] 在docker中运行open62541工程
  • pytorch chunk 切块
  • 【C++】容器适配器 + stack/queue/deque详解
  • Java基础,反射破坏封装性 - 单例模式的崩塌
  • 掌握PDF转CAD技巧,提升工程设计效率
  • 第四节 chatPDF
  • 机器视觉之工业相机讲解
  • unity animtor播放动画的指定位置
  • spring boot使用mybatis-plus实现分页功能
  • C++学习笔记三
  • MATLAB基于voronoi生成三维圆柱形
  • Token 和 Embedding的关系
  • 基于AOP+Redis的简易滑动窗口限流
  • C#基础篇(10)集合类之列表
  • 列表页智能解析算法:大规模数据采集的核心引擎