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.pswp.cn/news/902856.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902856.shtml
英文地址,請注明出處:http://en.pswp.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是線程…