您现在的位置是:首页 >技术杂谈 >mariadb解决Too many connections报错网站首页技术杂谈
mariadb解决Too many connections报错
1,断开所有连数据的程序或重启mariadb数据库,不然在数据库服务器上运行mysql,都会提示连接太多,无法进入。
service mysql restart
2,输入:mysql -u root -p 再输入密码, 进入mysql的编辑环境
3, 输入:show variables like 'max_connections'; 显示最大连接数据
mariadb数据库最大连接数,默认是151
4,输入:set GLOBAL max_connections=4096 设置最大连接数,之后再用3中的语句查看
5,上面的方法会立即生效,但是当重启mysql
时会失效,你也可以通过修改my.cnf
设置默认最大连接数,配置方法:
vim /etc/mysql/mariadb.conf.d/50-server.cnf
# 修改配置 max_connections = 1000
最后重启一下mysql
即可。
以下为该配置文件相关参数说明:
[mysqld] port = 3306 serverid = 1 socket = /tmp/mysql.sock skip-locking #避免MySQL的外部锁定,减少出错几率增强稳定性。 skip-name-resolve #禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求! back_log = 384 key_buffer_size = 256M max_allowed_packet = 4M thread_stack = 256K table_cache = 128K sort_buffer_size = 6M read_buffer_size = 4M read_rnd_buffer_size=16M join_buffer_size = 8M myisam_sort_buffer_size = 64M table_cache = 512 thread_cache_size = 64 query_cache_size = 64M tmp_table_size = 256M max_connections = 768 max_connect_errors = 10000000 wait_timeout = 10 thread_concurrency = 8 #该参数取值为服务器逻辑CPU数量*2,在本例中,服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4*2=8 skipnetworking #开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接! table_cache=1024 innodb_additional_mem_pool_size=4M #默认为2M innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=2M #默认为1M innodb_thread_concurrency=8 #你的服务器CPU 有几个就设置为几。建议用默认一般为8 tmp_table_size=64M #默认为16M,调到64-256最挂 thread_cache_size=120 query_cache_size=32M