Mysql 优化

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:

查看MySQL的连接时间配置

show global variables like “%timeout%”;

在这里插入图片描述

无连接可用解决
SET GLOBAL net_write_timeout = 120;
SET GLOBAL net_read_timeout = 60

接到报故,查看mysql数据库以下参数

1、innodb_buffer_pool_size

2、max_connections
该参数定义了数据缓冲区buffer pool大小,类似于oracle的db_cache_size
show global variables like ‘innodb_buffer_pool_size’;
那么如何设置该参数大小呢?首先查看运行时buffer pool相关数据指标:
show global status like ‘Innodb_buffer_pool_pages_data’;

show global status like ‘Innodb_buffer_pool_pages_total’;

show global status like ‘Innodb_page_size’;

计算Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100%

当结果 > 95% 则增加 innodb_buffer_pool_size, 建议使用物理内存的 75%

当结果 < 95% 则减少 innodb_buffer_pool_size,

建议设置大小为: Innodb_buffer_pool_pages_data* Innodb_page_size * 1.05 / (102410241024)
MySQL服务器的连接数并不是要达到最大的100%为好
show variables like ‘max_connections’;

这台MySQL服务器最大连接数是256,然后查询一下服务器响应的最大连接数:
show global status like ‘Max_used_connections’;
MySQL服务器过去的最大连接数是245,没有达到服务器连接数上限256,应该没有出现1040错误,比较理想的设置是:

Max_used_connections / max_connections * 100% ≈ 85%

最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接上线就设置得过高了。

mysql数据库插入时间与系统时间相差12小时

修改catalina.sh文件

打开 tomcat目录下/bin/catalina.sh文件,在文件的开头写入:

export JAVA_OPTS=“$JAVA_OPTS -Duser.timezone=Asia/shanghai”

然后重启了tomcat。

MySQL数据库连接太多,多数Sleep

1.查看当前所有连接的详细资料: mysqladmin -uroot -proot processlist

客户端使用:

show full processlist

2、只查看当前连接数(Threads就是连接数.):

mysqladmin -uroot -proot status

客户端使用:

3.查看最大连接数

show variables like “max_connections”;

4:查看当前连接数:

show global status like ‘Max_used_connections’;

如果进程过多打印下来:

mysql -e ‘show full processlist;’ > 111

解决办法:

SHOW GLOBAL VARIABLES LIKE ‘wait_timeout’; SHOW GLOBAL VARIABLES LIKE ‘interactive_timeout’;

set global wait_timeout=100; SET GLOBAL interactive_timeout=100;

修改连接的等待时间,超过时间释放连接。

上面是实时修改重启数据库后失效

可在my.cnf中添加

wait_timeout=100

interactive_timeout=100

再次查看可能发现连接任然无法释放。需要重启数据库。

可能Shutdown mysqld失败。一直…

则重启服务器吧。

mysql数据库无响应状态了。只能强制重启了

还可以修改最大连接数(不建议):

MySQL服务器过去的最大连接数是245,没有达到服务器连接数上限256,应该没有出现1040错误,比较理想的设置是:

Max_used_connections / max_connections * 100% ≈ 85%

临时修改

set GLOBAL max_connections=1000;

永久修改:

配置/etc/my.cnf

[mysqld]新添加一行如下参数:

max_connections=1000

show variables like ‘max_connections’; 如果不是我们查看的最大1000;

这是由于mariadb有默认打开文件数限制。可以通过配置/usr/lib/systemd/system/mariadb.service来调大打开文件数目。

配置/usr/lib/systemd/system/mariadb.service

[Service]新添加两行如下参数:

LimitNOFILE=10000

LimitNPROC=10000

重新加载系统服务,并重启mariadb服务

systemctl --system daemon-reload

systemctl restart mariadb.service

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值