日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL自动化安装部署(数据库参数可自适应 DBA 推荐)

發布時間:2023/12/8 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL自动化安装部署(数据库参数可自适应 DBA 推荐) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

適用于 CentOS 系統下,標準安裝 MySQL 5.7 & 8.0 可以自適應部分數據庫參數,安全、快捷、穩定。

一、前言

  • 太久沒有更新 CSDN 博客了,今天介紹的是我自己寫的一個 MySQL 二進制部署腳本,可以快速部署 MySQL 5.7 & 8.0 版本的數據庫。
  • 需求分析:比如自己需要搭建一個測試環境,可以使用腳本快速實現。該腳本使用規范的方法安裝數據庫,并且會根據服務器的配置自適應部分對數據庫性能特別影響的參數。如果你是 DBA 那么可以使用此腳本快速搭建可用的數據庫環境,安裝成功后,你只需要根據業務需求調整你需要的參數即可,如果你是對 MySQL 數據庫不太了解,那么可以使用此腳本,它會為你定制部分數據庫參數,至少可以達到 60 分的標準,并且也很高效。

二、環境說明

  • 系統要求:CentOS
  • MySQL 版本:僅支持 5.7 & 8.0
  • 腳本默認安裝路徑:/usr/local/mysql
  • 腳本默認數據路徑 /data/mysql*(腳本會根據版本確定安裝名 5.7 就是 mysql_57)
  • 參數相關:腳本會根據系統配置自適應部分重要參數 連接數默認 1000
  • 日志和復制:默認雙一、GTID、Slowlog、binlog 保存 10 天
  • 環境依賴:CentOS 默認會有 Python 2.7 不需要第三方模塊
  • 三、安裝實戰

  • 第一步需要從官方文檔下載標準 MySQL GA 版本安裝包 MySQL 官方安裝包存檔

  • 服務器上創建一個 /myinstall 臨時文件夾;

  • 將安裝包和 mysql_install.py 上傳到服務器:

  • 執行腳本即可:

    python mysql_install.py -p=mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

  • 此時腳本已經執行完成,登陸數據庫的命令已經打印出來,回車退出程序,使用命令登陸數據庫:

  • 進入數據庫后,必須要先修改 root 用戶的密碼,可以使用下方 SQL 修改:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'YouPassword';
  • 將 MySQL 添加到環境變量中:

    8. 將 MySQL 添加到 .bash_profile 中: vi /root/.bash_profile -- 添加到文件中 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin -- 保存后 source source /root/.bash_profile
  • 腳本有默認的 安裝路徑 及 數據路徑 和 端口(3306) 當然也是可以自己指定的,只需要給腳本傳入正確的參數即可,詳細可以 --help 瞅瞅:

  • MySQL 啟停配置:

    cp -ar /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld

    MySQL 有自帶啟動腳本,在 mysql/support-files 下的 mysql.server 我們只需要將它拷貝到 /etc/init.d 就可以使用 service 命令啟停 MySQL 了 😄

  • 四、腳本介紹

  • 腳本 GitHub 地址:https://github.com/DooBeDooBa/mysql_lib/blob/main/mysql_install.py

    git clone https://github.com/DooBeDooBa/mysql_lib.git
  • MySQL 參數介紹:

  • server_id:主機 ip 地址后三位 + MySQL 開放端口;
  • innodb_buffer_pool_size:該參數是 MySQL innodb 引擎最重要的緩沖區,直接影響 innodb 引擎的性能,官方建議為物理內存的 50%~70% 下方是腳本計算邏輯:
  • log_bin:MySQL 二進制日志,主要用來做主從復制和基于時間點恢復,腳本會默認開啟;
  • binlog_format:binlog 的記錄格式,腳本默認為 row 最安全、最嚴謹的記錄格式;
  • expire_logs_days:binlog 的自動清理時間,如果實例頻繁 DML 操作會產生大量的 binlog 日志,腳本默認會將二進制日志保存 10 天,該參數在 8.0 會刪除,8.0 使用的是 binlog_expire_logs_seconds 腳本會根據安裝包的名字確認用戶安裝的是 5.7 還是 8.0 會修改此參數,所以不要自己修改 MySQL 官網下載的安裝包名,不然腳本可能就無法解析到版本信息;
  • 五、8.0 自適應參數

  • 現在介紹的是 8.0 的新特性 innodb_dedicated_server 當開啟這個參數后,MySQL 會根據服務器的配置自適應 4 個參數,因為我們腳本也有自適應的邏輯,我們也一起探索官方是怎么做的~
  • 使用 MySQL_install 腳本快速部署一臺 MySQL 8.0 實例:
  • 然后我們修改配置文件,開啟該參數,重啟數據庫:
  • 此時為們使用的系統配置是 2C4G 發現 MySQL 為我們自適應四個參數分別是:
    • innodb_buffer_pool_size:innodb 引擎中最大的緩沖池;
    • innodb_log_file_size:Redo 重做日志的使用空間;
    • innodb_flush_method:控制數據文件及重做日志打開及刷寫的模式 該參數可以參考 MySQL 官方文檔
    • innodb_log_files_in_group (MySQL 8.0.14 起):重做日志的組數;
  • MySQL 8.0 參數自適應策略:
  • innodb_buffer_pool_size 自適應策略:
  • innodb_log_file_size 自適應策略:在 8.0.14 之前根據服務器物理內存設定,之后會根據 buffer pool 適應,當然如果要使用 8.0 那肯定是要用最新的 GA 版本嘍~
  • innodb_flush_method 自適應策略:
    會被默認設置為 O_DIRECT_NO_FSYNC 模式,如果 O_DIRECT_NO_FSYNC 模式不可用則會使用默認值。
  • 注意事項
  • 該參數不支持在線修改,需要重啟數據庫;
  • 如果配置中已經顯式指定對應的參數,則會已配置文件為準,不會自適應,也就是說如果想自適應那幾個參數,開啟 innodb_dedicated_server 即可,不需要再設定;
  • 單機多實例不建議使用;
  • 只適用于 innodb 引擎,如果業務使用其它存儲引擎則該參數也無意義;
  • 對云廠商很優化,擴展配置后不需要考慮這些重要參數。
  • 六、后記

  • MySQL_install 腳本的初衷:主要受眾人群是對 MySQL 參數及安裝方法不了解的,可以使用腳本快速完成標準安裝,腳本參數設置都是以 安全第一 為中心思想,如果你也是 DBA 也可以使用該腳本快速搭建出一個可用環境,再根據業務需求調整參數即可。
  • 關于參數自適應:該腳本的參數自適應邏輯,或者是 MySQL 8.0 的 innodb_dedicated_server 參數,都是可以完成一個 60 分的 MySQL 配置,肯定是可用的,但是如果需要 100 分,那就交給 DBA 吧~ 后面我也會根據自己的工作經驗不斷去優化這部分功能。
  • 關于 5.6 的自動化部署:與 5.7 & 8.0 有一些差異,所以該腳本對于 5.6 版本的 MySQL 是不支持的,畢竟現在官方已經不維護了,沒有特殊需求還是建議使用新版 GA 如果你也需要 5.6 腳本可以評論區留言。
  • 本篇文章主要介紹 MySQL 自動化腳本如果使用,及一些參數邏輯和 MySQL 8.0 的自適應新特性,希望對大家有用。作者我也是菜鳥一枚如果有什么經驗或者意見歡迎評論區分享交流!希望我們共同進步!— 文若不是菜雞

    ?

    總結

    以上是生活随笔為你收集整理的MySQL自动化安装部署(数据库参数可自适应 DBA 推荐)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。