Linux服务器上mysql8.0+数据库优化

1.配置文件路径

/etc/my.cnf                  # CentOS/RHEL
/etc/mysql/my.cnf            # Debian/Ubuntu
/etc/mysql/mysql.conf.d/mysqld.cnf  # Ubuntu/Debian

检查当前配置文件

sudo grep -v "^#" /etc/mysql/mysql.conf.d/mysqld.cnf | grep -v "^$"

备份

sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak

2.优化参数

InnoDB 缓冲池优化

# 设置为物理内存的 50%-70%(例如 8GB 内存设为 4-6GB)
innodb_buffer_pool_size = 4G# 缓冲池实例数(建议:1-8,大内存服务器可增加)
innodb_buffer_pool_instances = 4# 日志文件大小(建议:1-2GB)
innodb_log_file_size = 1G# 日志缓冲区大小(建议:16-64MB)
innodb_log_buffer_size = 64M

连接与线程优化​​

# 最大连接数(根据业务需求调整)
max_connections = 200# 线程缓存(建议:max_connections 的 10%)
thread_cache_size = 20# 连接超时(减少空闲连接占用)
wait_timeout = 300
interactive_timeout = 300

临时表与排序优化

# 临时表内存大小(建议:32-256MB)
tmp_table_size = 128M
max_heap_table_size = 128M# 排序缓冲区(建议:2-8MB)
sort_buffer_size = 4M
join_buffer_size = 4M

日志与持久化​​

# 禁用二进制日志(非主从复制可关闭)
# skip-log-bin# 事务提交方式(建议:1,兼顾性能与安全)
innodb_flush_log_at_trx_commit = 1# 数据写入方式(建议:O_DIRECT,避免双缓冲)
innodb_flush_method = O_DIRECT

启用性能模式(监控 SQL 性能)​​

performance_schema = ON

优化 InnoDB I/O​​

# 预读(建议:01)
innodb_read_ahead_threshold = 0# I/O 线程数(建议:4-8)
innodb_read_io_threads = 4
innodb_write_io_threads = 4

内存管理​​

# 表缓存(建议:2000-4000)
table_open_cache = 2000# 表定义缓存(建议:2000)
table_definition_cache = 2000

限制最大连接数

max_connections = 200
max_user_connections = 100

启用 SSL

 ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

3.写入配置文件方式

方法 1:使用 echo 和 >> 追加内容​​

​​适用场景​​:在文件末尾追加新配置(不会覆盖原有内容)。

# 使用 echo 追加内容(需 sudo 权限)
echo "innodb_buffer_pool_size = 4G" | sudo tee -a /etc/mysql/mysql.conf.d/mysqld.cnf验证
sudo tail -n 5 /etc/mysql/mysql.conf.d/mysqld.cnf

​方法 2:使用 sed 插入或替换内容​​

​​适用场景​​:修改已有配置或插入到指定位置。

1.替换已有参数
# 如果参数已存在,替换其值(例如修改 bind-address)
sudo sed -i 's/^bind-address.*/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf2.在指定行后插入新配置​​
# 在 [mysqld] 段落下方插入新配置
sudo sed -i '/^$$mysqld$$$/a innodb_buffer_pool_size = 4G' /etc/mysql/mysql.conf.d/mysqld.cnf

​方法 3:使用 tee 直接写入​​

​​适用场景​​:覆盖或追加多行配置。

# 覆盖写入(慎用!会清空原文件)
cat <<EOF | sudo tee /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
innodb_buffer_pool_size = 4G
max_connections = 200
EOF# 追加写入(推荐)
cat <<EOF | sudo tee -a /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
innodb_log_file_size = 1G
EOF

​方法 4:使用 vim 或 nano 手动编辑​​

# 使用 nano(适合新手)
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf​操作步骤​​:1.按 i 进入编辑模式。2.修改或添加配置(例如在 [mysqld] 段落下添加参数)。3.Esc 退出编辑,输入 :wq 保存并退出。# 使用 vim
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf​操作步骤​​:1. ​​修改文件后​​,按以下组合键:Ctrl + O​​(字母O) ​​2. 底部会显示 File Name to Write: mysqld.cnf,按 Enter 确认保存3.​​​​ ​​退出编辑器​​:​​Ctrl + X如果已保存,会直接退出如果未保存,会提示 Save modified buffer?,按 Y 确认保存后退出

4.优化后检查​​

修改后验证配置是否正确:

sudo mysqld --validate-config

重启 MySQL 生效​​:

sudo systemctl restart mysql

监控 MySQL 状态​​

# 查看当前连接数
mysqladmin -u root -p status# 查看 InnoDB 状态
mysql -u root -p -e "SHOW ENGINE INNODB STATUS\G"

数据库sql语句验证

-- 查看所有参数
SHOW VARIABLES-- 查看所有 InnoDB 相关参数
SHOW VARIABLES LIKE 'innodb_%';-- 查看指定参数
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'max_connections';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MQTT学习资源

MQTT入门&#xff1a;强烈推荐

第十二章 Python语言-大数据分析PySpark(终)

目录 一. PySpark前言介绍 二.基础准备 三.数据输入 四.数据计算 1.数据计算-map方法 2.数据计算-flatMap算子 3.数据计算-reduceByKey方法 4.数据计算-filter方法 5.数据计算-distinct方法 6.数据计算-sortBy方法 五.数据输出 1.输出Python对象 &#xff08;1&am…

【XR手柄交互】Unity 中使用 InputActions 实现手柄控制详解(基于 OpenXR + Unity新输入系统(Input Actions))

摘要&#xff1a; 本文主要介绍如何使用 Input Actions&#xff08;Unity 新输入系统&#xff09; OpenXR 来实现 VR手柄控制&#xff08;监听ABXY按钮、摇杆、抓握等操作&#xff09;。 &#x1f3ae; Unity 中使用 InputActions 实现手柄控制详解&#xff08;基于 OpenXR 新…

java实现网格交易回测

以下是一个基于Java实现的简单网格交易回测程序框架&#xff0c;以证券ETF&#xff08;512880&#xff09;为例。代码包含历史数据加载、网格策略逻辑和基础统计指标&#xff1a; import java.io.BufferedReader; import java.io.FileReader; import java.text.ParseException…

探秘 3D 展厅之卓越优势,解锁沉浸式体验新境界

&#xff08;一&#xff09;打破时空枷锁&#xff0c;全球触达​ 3D 展厅的首要优势便是打破了时空限制。在传统展厅中&#xff0c;观众需要亲临现场&#xff0c;且必须在展厅开放的特定时间内参观。而 3D 展厅依托互联网&#xff0c;让观众无论身处世界哪个角落&#xff0c;只…

第十二届蓝桥杯 2021 C/C++组 直线

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 核心思路&#xff1a; 两点确定一条直线&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 第一种方式代码详解&#xff1a; 第二种方式代码详解&#xff1a; 题目&#xff1a;…

微信小程序蓝牙连接打印机打印单据完整Demo【蓝牙小票打印】

文章目录 一、准备工作1. 硬件准备2. 开发环境 二、小程序配置1. 修改app.json 三、完整代码实现1. pages/index/index.wxml2. pages/index/index.wxss3. pages/index/index.js 四、ESC/POS指令说明五、测试流程六、常见问题解决七、进一步优化建议 下面我将提供一个完整的微信…

ubuntu opencv 安装

1.ubuntu opencv 安装 在Ubuntu系统中安装OpenCV&#xff0c;可以通过多种方式进行&#xff0c;以下是一种常用的安装方法&#xff0c;包括从源代码编译安装。请注意&#xff0c;安装步骤可能会因OpenCV的版本和Ubuntu系统的具体版本而略有不同。 一、安装准备 更新系统&…

【C++】class静态常量

Usage: static const T 1 background static const成员属于类&#xff0c;而不是类的实例&#xff0c;所以它们的初始化需要在类外进行(或者在C17之后可以用inline初始化)。 使用中可能遇到的情况&#xff1a; 在头文件中声明一个static const成员&#xff0c;然后在多个cpp…

Java 安全:如何防止 DDoS 攻击?

一、DDoS 攻击简介 DDoS&#xff08;分布式拒绝服务&#xff09;攻击是一种常见的网络攻击手段&#xff0c;攻击者通过控制大量的僵尸主机向目标服务器发送海量请求&#xff0c;致使服务器资源耗尽&#xff0c;无法正常响应合法用户请求。在 Java 应用开发中&#xff0c;了解 …

统计文件中单词出现的次数并累计

# 统计单词出现次数 fileopen("E:\Dasktape/python_test.txt","r",encoding"UTF-8") f1file.read() # 读取文件 countf1.count("is") # 统计文件中is 单词出现的次数 print(f"此文件中单词is出现了{count}次")# 2.判断单词出…

C语言实现贪心算法

一、贪心算法核心思想 特征&#xff1a;在每一步选择中都采取当前状态下最优&#xff08;局部最优&#xff09;的选择&#xff0c;从而希望导致全局最优解 适用场景&#xff1a;需要满足贪心选择性质和最优子结构性质 二、经典贪心算法示例 1. 活动选择问题 目标&#xff1a…

《一文读懂Transformers库:开启自然语言处理新世界的大门》

《一文读懂Transformers库:开启自然语言处理新世界的大门》 GitHub - huggingface/transformers: 🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX. HF-Mirror Hello! Transformers快速入门 pip install transformers -i https:/…

Vue里面elementUi-aside 和el-main不垂直排列

先说解决方法 main.js少导包 import element-ui/lib/theme-chalk/index.css; //加入此行即可 问题复现 排查了一个小时终于找出来问题了&#xff0c;建议导包去看官方的文档&#xff0c;作者就是因为看了别人的导包流程导致的问题 导包官网地址Element UI导包快速入门

MYSQL 常用字符串函数 和 时间函数详解

一、字符串函数 1、​CONCAT(str1, str2, …) 拼接多个字符串。 SELECT CONCAT(Hello, , World); -- 输出 Hello World2、SUBSTRING(str, start, length)​​ 或 ​SUBSTR() 截取字符串。 SELECT SUBSTRING(MySQL, 3, 2); -- 输出 SQ3、LENGTH(str)​​ 与 ​CHAR_LENGTH…

Python-Agent调用多个Server-FastAPI版本

Python-Agent调用多个Server-FastAPI版本 Agent调用多个McpServer进行工具调用 1-核心知识点 fastAPI的快速使用agent调用多个server 2-思路整理 1&#xff09;先把每个子服务搭建起来2&#xff09;再暴露一个Agent 3-参考网址 VSCode配置Python开发环境&#xff1a;https:/…

Drools+自定义规则库

文章目录 前言一、创建规则库二、SpringBootDrools程序1.Maven依赖2.application.yml3.Mapper.xml4.Drools配置类5.Service6.Contoller7.测试接口 前言 公司的技术方案想搭建Drools自定义规则库配合大模型进行数据的校验。本篇用来记录使用SpringBoot配合Drools开发Demo程序。…

潮了 低配电脑6G显存生成60秒AI视频 本地部署/一键包/云算力部署/批量生成

最近发现了一个让人眼前一亮的工具——FramePack&#xff0c;它能用一块普通的6GB显存笔记本GPU&#xff0c;生成60秒电影级的高清视频画面&#xff0c;效果堪称炸裂&#xff01;那么我们就把他本地部署起来玩一玩、下载离线一键整合包&#xff0c;或者是用云算力快速上手。接下…

【蓝桥杯选拔赛真题104】Scratch回文数 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch回文数 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 四、程序编写 五、考点分析 六、推荐资料 1、scratch资料 2、python资料 3、C++资料 scratch回文数 第十五届青少年蓝桥杯scratch编…

大厂面试-框架篇

前言 本章内容来自B站黑马程序员java大厂面试题和小林coding 博主学习笔记&#xff0c;如果有不对的地方&#xff0c;海涵。 如果这篇文章对你有帮助&#xff0c;可以点点关注&#xff0c;点点赞&#xff0c;谢谢你&#xff01; 1.Spring 1.1 Spring框架中的单例bean是线程…