Linux下二進位方式安裝mysql5.7版本和系統優化

来源:https://www.cnblogs.com/Sungeek/archive/2020/01/15/12197760.html
-Advertisement-
Play Games

本文主要介紹MySQL二進位軟體包的安裝/啟動/關閉過程。 也許有人要問為什麼要選擇二進位的安裝方式呢? 其實答案很簡單,官方版本中已經把所有功能都配置好了,我們可以很方便地拿來使用。 官方MySQL有四個版本:GA版本、DMR版本、RC版本和Beta版本。一般情況下,生產環境或者測試環境都 選擇G ...


 

本文主要介紹MySQL二進位軟體包的安裝/啟動/關閉過程。

也許有人要問為什麼要選擇二進位的安裝方式呢?

其實答案很簡單,官方版本中已經把所有功能都配置好了,我們可以很方便地拿來使用。

官方MySQL有四個版本:GA版本、DMR版本、RC版本和Beta版本。一般情況下,生產環境或者測試環境都

選擇GA版本(常規可用的版本,經過bug修複測試過)。

下載地址:https://dev.mysql.com/downloads/mysql/

下載完成以後可以檢驗一下MD5,我這邊之前下載的版本,這邊就演示這個命令的使用(md5sum 文件名)

[root@tse2 downloads]# md5sum mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 
d903d3dbf235b74059a4b3e216c71161  mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

1、安裝前系統環境檢測

不管是MySQL哪個版本的安裝,為了可以很順利地把MySQL資料庫安裝好,做好後期資料庫的優化工作,在前期進行Linux的系統檢測是十分有必要的。

1.1、selinux和iptables需要關閉,把SELINUX=disabled,改完重啟伺服器生效。

我這裡沒有iptables用的是firewall所以不用關閉iptables

1.2、I/O調度系統預設是cfq模式,這裡強烈建議使用deadline模式

查看I/O調度文件:

[root@tse2 downloads]# cat /sys/block/sda/queue/scheduler 
noop [deadline] cfq 

1.3、swap分區的設置

swpapiness值的大小對如何使用swap分區有著很大的影響。

它有0和100兩個極限值,0代表最大限度地使用物理記憶體,然後才使用swap分區,這種行為很有可能導致系統記憶體溢出,出現OOM的錯誤,從而導致MySQL被意外kill掉,所以需要謹慎設置。

100則是積極地使用swap分區,並且把記憶體上面的數據及時搬到swap分區里(不建議)。這裡建議大家不分配swap,或者分配4GB的空間就足夠了。

如何查看swappiness文件呢?

[root@tse2 grub2]# cat /proc/sys/vm/swappiness
30
[root@tse2 grub2]# sysctl -a|grep swap
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.ens192.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
vm.swappiness = 30

想要修改swappiness的值,編輯/etc/sysctl.conf,加入vm.swappiness的值即可。

1.4、文件系統的選擇

這裡建議使用xfs文件系統,相比ext4,它更方便管理,支持動態擴容,刪除文件也很方便。

1.5、操作系統的限制

先來查看一些當前操作系統的限制情況,使用ulimit -a查看:

這裡標記了兩個最為重要的參數,一個叫open files,另一個叫max user processes。

open files如果設置不合理,而當前伺服器的連接過多或者表過多時,就有可能會出現打不開表或者訪問不了表的現象。

預設情況下,Linux最大句柄數為1024個,表示單個進程最多可以訪問1024個文件句柄。如要超過預設值,就會出現文件句柄超限的錯誤”too many open files“。

max user processes參數的用途:有時候我們可能會跑很多實例,但是發現創建不了新的連接,報出“resource temporarily unavailable”的錯誤,表示沒有足夠的資源。

為了防止以上兩種報錯情況,我們可以修改系統的軟硬限制。編輯/etc/security/limits.conf,加入限制的相關內容。記得更改完內容之後,需要重啟操作系統才能生效。

[root@tse2 grub2]# vim /etc/security/limits.conf
*               soft    nproc           65535
*               hard    nproc           65535
*               soft    nofile          65535
*               hard    nofile          65535

1.6、numa需要關閉

簡單來講關閉numa功能,可以更好地分配記憶體,不需要採用swap的方式來獲取記憶體。

因為有經驗的系統管理員和DBA都知道使用swap導致的資料庫性能下降有多麼的噁心。

關閉方式也分在BIOS、操作系統中關閉,或者是在資料庫啟動過程中關閉。

[root@tse2 bin]# numa --interleave=all /mysql/app/bin/mysqld_safe -defaults-file=/etc/my.conf &

2、MySQL5.7版本安裝過程

檢查完操作系統環境後,進入MySQL安裝階段,總結為“三部曲+一步走”的方式。

2.1、第一部曲

創建MySQL用戶,指定MySQL所在的用戶組,命令如下:

[root@tse2 /]# groupadd mysql
[root@tse2 /]# useradd -g mysql mysql -s /sbin/nologin

軟體包的家目錄(basedir)我這邊是習慣統一放在/data/downloads下麵:

[root@tse2 downloads]# pwd
/data/downloads

需要解壓MySQL軟體包,命令如下:

[root@tse2 downloads]# tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

需要對MySQL目錄授權:

[root@tse2 downloads]# chown -R mysql:mysql /mysql

2.2、第二部曲

創建MySQL資料庫的數據目錄(datadir),這裡可以選擇創建在/mysql/下麵:

[root@tse2 downloads]# mkdir -p /mysql/data

也要對數據目錄授權:

[root@tse2 downloads]# chown -R mysql:mysql /mysql/data

2.3、第三部曲

由於是二進位的安裝方式,這裡的資料庫配置文件需要自己配置好,到此完成最後一部曲

my.cnf配置文件下載地址:https://files.cnblogs.com/files/Sungeek/Tsemy.7z

密碼:tse

2.4、最後一步

mysqld命令初始化資料庫:

[root@tse2 mysql]# /mysql/app/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/mysql/app --datadir=/mysql/data/ --user=mysql -initialize

註:如果在初始化過程中加上--initialize參數,表示會生成一個臨時的資料庫初始化密碼,

記錄在log-error(錯誤日誌)裡面,如果加上--initialize-insecure參數,代表無密碼進入。建議使用生成初始化密碼的方式!

啟動資料庫的過程:

[root@tse2 mysql]# /mysql/app/bin/mysqld_safe --defaults-file=/etc/my.cnf &

資料庫啟動成功之後,進入資料庫的初始化密碼會在/mysql/logs/error.log下麵:

[root@tse2 logs]# cat /mysql/logs/error.log |grep password

使用初始化密碼進入資料庫之後,需要修改資料庫root密碼,設置為永不過期:

/mysql/app/bin/mysql -uroot -p
mysql>SET PASSWORD = '123456';
mysql>ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql>flush privileges;

以上就是MySQL5.7版本的安裝啟動方式和系統優化的部分優化說明。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡介 在bash腳本編程中,條件結構體使用if語句和case語句兩種句式。 if語句 單分支if語句 if TEST; then CMD fi TEST:條件判斷,多數情況下可使用test命令來實現,返回值為0的話則執行CMD,否則就離開該條件結構體,腳本繼續往下執行。 [root@c7-serve ...
  • vmware進程殺不掉 在使用vmware虛擬機時,如果強制結束vmware進程,可能會發現在資源監視器中有一個vmware-vmx.exe進程始終關不掉,獲得管理員許可權去殺或者重啟都沒有用,然後正常的虛擬機打不開,也無法卸載或者更新 網上所有的教程都嘗試過了,也還是不行。我的解決方法是:首先重啟計 ...
  • 背景 在linux系統中提供了2個查詢系統負荷值的命令,一個是 ps o THREAD 一個是 top ,這兩個命令都能夠查詢當前進程的CPU使用率情況,但是所代表的含義確實不一樣的, ps o THREAD 偏向與整個進程周期所占的CPU使用率,而 top 更偏向於某個固定時間視窗的CPU使用率也 ...
  • 隨著自旋轉移矩效應的發現以及材料和結構的優化,基於自旋轉移矩效應的STT-MRAM器件應運而生。自從自旋轉移矩效應被證實以來,一方面研究人員通過大量的努力嘗試降低磁化反轉的臨界電流,增加熱穩定性;另一方面Sony、Hitachi、Renesas、Crocus、Toshiba、Samsung、Hyni ...
  • VIM編譯器的安裝與使用 vim編輯器安裝 在CentOS中,執行:yum -y install vim 普通模式 h: 左移一個字元 j: 下移一行 k: 上移一行 l: 右移一個字元 PageDown(或Ctrl+F):下翻一屏 PageUp(或Ctrl+B):上翻一屏 G:移到緩衝區的最後一行 ...
  • centos安裝與網路配置 關機:shutdown -h now 重啟:shutdown -r now 或 reboot linux目錄結構與操作命令 使用ls命令查看目錄結構 目錄查看: ls [-al] [ 文件或目錄名稱] 目錄切換: cd [ 目錄名稱] 顯示當前目錄: pwd 絕對路徑 : ...
  • 系統環境 "官方網站" "官方文檔" 升級其實很簡單如果您上次安裝的版本是編譯的也不用擔心 修改變數 複製配置文件即可註:本次升級基於yum升級 升級zabbix 更新前請務必備份好原有zabbix文件內容 不要刪除 升級過程 配置yum源升級zabbix的方式在3.0以後都是通用的 想升級到那個版 ...
  • 屏幕解析度設置 電源屏幕顯示時間 投影可以進行手機投影到電腦進行操作,遠程桌面可以進行遠程訪問,如雲伺服器 設置桌面圖標和背景 設置預設應用 安裝軟體,必備的幾項軟體 --其中個人認為(1)(2)是必須的 安全軟體:火絨安全。 驅動軟體:GeForce。 瀏覽器:谷歌。 聊天軟體:QQ,WeChat ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...