一 时区配置
mysql 安装后默认是使用系统时间,如果是linux系统就要注意系统时区是否配置正确
1 配置centos系统时区
# 查看当前系统时区
timedatectl status# 如果需要更改时区,比如设置为北京时间(中国标准时间)
sudo timedatectl set-timezone Asia/Shanghai# 验证是否已更改为所需的时区
timedatectl status
配置后,系统时区为上海,如下图:
此时如果mysql使用的是系统时区是没有问题的。
2 配置mysql服务器时区(推荐)
直接修改配置文件my.cnf
[mysqld]
default-time-zone='+08:00' # 设置中国时区值
重启mysql服务即可
查看配置是否成功:
-- 方式1
SHOW VARIABLES LIKE 'time_zone';-- 方式2
SELECT @@global.time_zone, @@session.time_zone;
执行后如下图:
二 防火墙放行
方式1: 按指定的服务名称放行
sudo firewall-cmd --permanent --add-service=mysql
sudo firewall-cmd --reload
方式2: 按指定的端口放行
# 开启防火墙并永久放行3306端口
firewall-cmd --permanent --add-port=3306/tcp# 刷新防火墙规则使之立即生效
firewall-cmd --reload
三 性能参数配置
内存相关参数:
-
innodb_buffer_pool_size:InnoDB存储引擎最重要的参数之一,决定了InnoDB用来缓存数据和索引的内存大小。建议物理内存的50%-70%。
-
key_buffer_size:用于缓存MyISAM索引。如果大部分表都是InnoDB类型,则可以适当减小此值。
-
query_cache_size(MySQL 8.0以前版本):MySQL的查询缓存功能,如果适用且有效率,可以提高重复查询的速度。但要注意查询缓存带来的维护成本和潜在的并发问题,MySQL 8.0开始已经弃用查询缓存。
-
thread_cache_size:线程缓存大小,用于改善线程创建和销毁的开销。
并发和连接处理:
-
max_connections:设定MySQL的最大并发连接数,应根据服务器的实际负载能力来设置。
-
wait_timeout 和 interactive_timeout:分别设置非交互式和交互式连接空闲超时时间,防止长时间闲置连接占用资源。
InnoDB存储引擎相关:
-
innodb_log_file_size:InnoDB redo日志文件大小,增大它可以减少redo log频繁刷新到磁盘的情况。
-
innodb_flush_log_at_trx_commit:控制事务提交时日志刷新到磁盘的频率,影响持久性和性能之间的平衡。
-
innodb_flush_method:设置InnoDB I/O刷盘的方式,对I/O性能有一定影响。