mariadb 发现的一些错误总结

原创:https://blog.csdn.net/ndzjx/article/details/122180553

mariadb 发现的一些错误总结

目录

1. Cannot assign requested address

2. accept4: too many files open

3. mariadb关闭bin-log失效

4. 一些性能优化的配置:


1. Cannot assign requested address

并发量大的时候,端口没有重用,被占满了,解决办法,两步:
一:临时生效
1)sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_tw_recycle=1
2)ulimit -n 65535
二:永久生效
1)
vi /etc/sysctl.conf 添加如下两行
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
立即生效:
sysctl -p
2)编辑:vim /etc/security/limits.conf 增加如下两行,注销重新登录会永久生效。 
* soft nofile 65535 
* hard nofile 65535
直接执行 ulimit -n 65535


2. accept4: too many files open

1. cat /proc/sys/fs/file-nr 查看系统全局内核限制的总共可用的和已用的文件描述符数量
2. ulimit -n 以及 cat /etc/security/limits.conf 查看用户态的打开文件数上限
3. cat /proc/<PID>/limits 查看针对单一进程的限制
4. 若内核限制、用户态限制已调大,但进程限制仍然不变,在 Systemd service 启动文件中通过 LimitNOFILE= 选项修改
5. 如果以上调整完毕,仍然出显 accept4 too many files open 错误,排查代码逻辑,是否存在未及时关闭的 tcp 连接
 

3. mariadb关闭bin-log失效


网上一般的方法是,注释小my.cnf 的log-bin这一行,但是在 mariadb中失效了。
正确的方法是,注掉那一行之后,加上一行:skip-log-bin

4. 一些性能优化的配置:

max_connections = 65000 
max_connect_errors = 100

default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:1G:autoextend 
innodb_log_group_home_dir = /var/lib/mysql
innodb_buffer_pool_size = 2048M
innodb_log_file_size = 2048M
innodb_log_buffer_size = 1024M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50

innodb_undo_logs = 128  
innodb_undo_directory = /var/lib/mysql/undologs
innodb_undo_tablespaces = 4 
innodb_undo_log_truncate = 1 
innodb_max_undo_log_size = 4G
innodb_purge_threads = 4
innodb_purge_rseg_truncate_frequency = 32 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值