现象
Error when connecting to server: 1064 Reach limit of connections(FE的连接数达到了上限)

分析
当前单台FE单个用户的最大连接数默认为100,总连接数限制默认为1024,建议使用连接池并且大小不要超过这个限制。如果需要提高限制,通过在fe的配置文件里配置总限qe_max_connection。
其中100是由用户的属性max_user_connections决定的;1024是由FE的静态参数qe_max_connection
决定的,该参数表示FE 支持的最大连接数,包括所有用户发起的连接,若是修改的话只能修改 fe.conf
中修改并重启 FE。
参数是否为动态参数可通过 [ADMIN SHOW CONFIG](https://docs.starrocks.io/zh-cn/latest/sql-reference/sql-statements/Administration/ADMIN SHOW CONFIG) 返回结果中的 IsMutable
列查看。TRUE
表示动态参数。
max_conn_per_user这个参数是用户能够处理的最大连接数,默认100,已经在代码中写死,更改无法生效,如果单个用户连接数到达上限 ,可以修改SET PROPERTY FOR ‘user_name’ ‘max_user_connections’ = ‘1000’;
1mysql> ADMIN SHOW FRONTEND CONFIG LIKE 'qe_max_connection';
2+-------------------+------------+-------+------+-----------+---------+
3| Key | AliasNames | Value | Type | IsMutable | Comment |
4+-------------------+------------+-------+------+-----------+---------+
5| qe_max_connection | [] | 1024 | int | false | |
6+-------------------+------------+-------+------+-----------+---------+
71 row in set (0.05 sec)
8
9
10
11cat >> /usr/local/starrocks/fe/conf/fe.conf <<"EOF"
12qe_max_connection = 10240
13EOF
14
15
16stop_fe.sh
17start_fe.sh --daemon
连接上限是根据用户设置的,如果不是高并发注意查一下是不是有什么客户端持有连接一直没有关闭,通过 show processlist 可以看到当前的连接
解决
修改用户的属性即可:
1-- 查看用户 root 的最大连接数。
2SHOW PROPERTY;
3SHOW PROPERTY FOR 'root';
4
5show processlist;
6
7
8-- 修改
9SET PROPERTY FOR 'root' 'max_user_connections' = '1000';
参考
https://docs.starrocks.io/zh-cn/latest/sql-reference/sql-statements/account-management/SET%20PROPERTY
https://docs.starrocks.io/zh-cn/latest/sql-reference/sql-statements/data-manipulation/SHOW%20PROPERTY#%E7%A4%BA%E4%BE%8B
https://forum.mirrorship.cn/t/topic/31
https://forum.mirrorship.cn/t/topic/7416




