1. 程式人生 > 資料庫 >Linux下二進位制方式安裝mysql5.7版本和系統優化的步驟

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

本文主要介紹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
[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版本的安裝啟動方式和系統優化的部分優化說明。

總結

以上所述是小編給大家介紹的Linux下二進位制方式安裝mysql5.7版本和系統優化的步驟,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!