mysql學習2:第二章:mysql安裝啟動和關閉——安裝前檢查

studywell發表於2018-11-05

1.1.   下載安裝包

官方地址:

下載版本:Mysql Community Server,平臺Linux-Generic x86-64bit。

下載安裝包mysql 5.6  mysql5.7

下載後進行透過md5校驗安裝包:md5sum filename

2018.11.3當前官網最新版本:

mysql 5.7.24

mysql 5.6.42

 

版本安裝區別:

mysql 5.7之前版本在資料庫初始化過程中需要藉助於/usr/local/mysql/scripts/mysql_install_db命令,但在mysql 5.7後mysql_install_db被廢棄了。

1.2.   安裝前系統環境檢測

由於書中未制定作業系統平臺,這裡選用centos7.4_x64。

[root@localhost ~]# cat /etc/centos-release

CentOS Linux release 7.4.1708 (Core)

ip地址設定為192.0.2.10 

 

1.2.1.   解除安裝原系統帶的MariaDB

CentOS7預設安裝MariaDB而不是MySQL,而且yum伺服器上也移除了MySQL相關的軟體包。因為MariaDB和MySQL可能會衝突,故先解除安裝MariaDB。

 

記得一定要先解除安裝,不然會出現包衝突的問題。

需要將系統自帶的mariadb-lib解除安裝

# rpm -qa | grep -i mariadb

mariadb-5.5.56-2.el7.x86_64

mariadb-server-5.5.56-2.el7.x86_64

mariadb-libs-5.5.56-2.el7.x86_64

 

[root@localhost ~]# rpm -e --nodeps mariadb

[root@localhost ~]# rpm -e --nodeps mariadb-server

[root@localhost ~]# rpm -e --nodeps mariadb-libs

 

1.2.2.   關閉selinux、iptables、firewall

關閉selinux

/etc/sysconfig/selinux  

關閉iptables

chkconfig --list|grep iptables

chkconfig iptables off

關閉防火牆

Centos7中防火牆變為了firewall,所以千萬不要在使用iptable去關閉了。

1 檢視防火牆狀態

# firewall-cmd --state

running

2 果然是執行的,於是就想disabled防火牆服務

# systemctl mask firewalld

ln -s '/dev/null' '/etc/systemd/system/firewalld.service'

3 然後關閉防火牆

# systemctl stop firewalld

4 最後檢查防火牆服務,發現已經關閉了

# firewall-cmd --state

not running

 

1.2.3.   IO排程系統模式修改

將IO排程系統設定為deadline模式

本系統檢視

[root@localhost ~]# cat /sys/block/sda/queue/scheduler

noop [deadline] cfq

更改IO系統排程的方法根據系統不同,本次沒有測試。

 

關於IO排程

具體參考:http://blog.itpub.net/29519108/viewspace-2218623/

總結:

1、CFQ和DEADLINE考慮的焦點在於滿足零散IO請求上。對於連續的IO請求,比如順序讀,並沒有做最佳化。為了滿足隨機IO和順序IO混合的場景,Linux還支援ANTICIPATORY排程演算法。ANTICIPATORY的在DEADLINE的基礎上,為每個讀IO都設定了6ms的等待時間視窗。如果在這6ms內OS收到了相鄰位置的讀IO請求,就可以立即滿足。

IO排程器演算法的選擇,既取決於硬體特徵,也取決於應用場景。

在傳統的SAS盤上,CFQ、DEADLINE、ANTICIPATORY都是不錯的選擇;對於專屬的資料庫伺服器,DEADLINE的吞吐量和響應時間都表現良好。

然而在新興的固態硬碟比如SSD、Fusion IO上,最簡單的NOOP反而可能是最好的演算法,因為其他三個演算法的最佳化是基於縮短尋道時間的,而固態硬碟沒有所謂的尋道時間且IO響應時間非常短。

2、對於資料庫應用, Anticipatory Scheduler 的表現是最差的。Deadline 在 DSS 環境表現比 cfq 更好一點,而 cfq 綜合來看錶現更好一些。這也難怪 RHEL預設的 IO 排程器設定為 cfq。

1.2.4.   swap分割槽設定

swapiness值在0和100之間,0代表最大下怒使用實體記憶體,然後使用SWAP分割槽。100則積極使用swap分割槽,把記憶體資料庫及時搬到swap分割槽下。

檢視本系統;

[root@localhost ~]# cat /proc/sys/vm/swappiness

30

如需更改,編輯/etc/sysctl.conf,加入vm.swappiness的值即可。

 

1.2.5.   檔案系統

建議使用XFS檔案系統,相比ext4,更加方便管理,支援動態擴容, 刪除檔案也方便。

具體參考:http://blog.itpub.net/29519108/viewspace-2218624/

1.2.6.   作業系統限制

unlimit -a 檢視引數

 

[root@localhost ~]# ulimit -a

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 7165

max locked memory       (kbytes, -l) 64

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) 8192

cpu time               (seconds, -t) unlimited

max user processes              (-u) 7165

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

 

open_files    預設1024,表示單個程式最多可以訪問1024各檔案控制程式碼。系統連結或表過多,會出現打不開或者範圍內不了的情況。

max user processes    預設7185,連線數。

修改/etc/security/limits.conf,加入限制的相關內容,後重啟系統。

*      hard nproc     65535

*      soft    nproc   65535

*      soft    nofile   65535

*      hard    nofile   65535

 

1.2.7.   numa需要關閉

具體參考:http://blog.itpub.net/29519108/viewspace-2218625/

 

關閉numa功能,可以更好分配記憶體,不需要採用哦個seap方式來獲取記憶體。

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

 

numa --interleave=all /usr/loal/mysql/bin/mysqld_safe -defaults-file=/etc/my.cnf &

 

非一致儲存訪問結構 (NUMA : Non-Uniform Memory Access) 也是最新的記憶體管理技術。它和對稱多處理器結構 (SMP : Symmetric Multi-Processor) 是對應的。

MySQL單機單例項,建議關閉NUMA,關閉的方法有三種:

1.硬體層,在BIOS中設定關閉;

2.OS核心,啟動時設定numa=off;

3.可以用numactl命令將記憶體分配策略修改為interleave(交叉)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2218715/,如需轉載,請註明出處,否則將追究法律責任。

相關文章