官方地址:www.mysql.com
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)定制網(wǎng)站設(shè)計,是成都網(wǎng)站營銷推廣公司,為成都辦公空間設(shè)計提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站推廣熱線:028-86922220下載版本:Mysql Community Server,平臺Linux-Generic x86-64bit。
下載安裝包mysql 5.6 mysql5.7
下載后進(jìn)行通過md5校驗安裝包:md5sum filename
2018.11.3當(dāng)前官網(wǎng)最新版本:
mysql 5.7.24
mysql 5.6.42
版本安裝區(qū)別:
mysql 5.7之前版本在數(shù)據(jù)庫初始化過程中需要借助于/usr/local/mysql/scripts/mysql_install_db命令,但在mysql 5.7后mysql_install_db被廢棄了。
由于書中未制定操作系統(tǒng)平臺,這里選用centos7.4_x64。
[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
ip地址設(shè)置為192.0.2.10
CentOS7默認(rèn)安裝MariaDB而不是MySQL,而且yum服務(wù)器上也移除了MySQL相關(guān)的軟件包。因為MariaDB和MySQL可能會沖突,故先卸載MariaDB。
記得一定要先卸載,不然會出現(xiàn)包沖突的問題。
需要將系統(tǒng)自帶的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
關(guān)閉selinux
/etc/sysconfig/selinux
關(guān)閉iptables
chkconfig --list|grep iptables
chkconfig iptables off
關(guān)閉防火墻
Centos7中防火墻變?yōu)榱薴irewall,所以千萬不要在使用iptable去關(guān)閉了。
1 查看防火墻狀態(tài)
# firewall-cmd --state
running
2 果然是運行的,于是就想disabled防火墻服務(wù)
# systemctl mask firewalld
ln -s '/dev/null' '/etc/systemd/system/firewalld.service'
3 然后關(guān)閉防火墻
# systemctl stop firewalld
4 最后檢查防火墻服務(wù),發(fā)現(xiàn)已經(jīng)關(guān)閉了
# firewall-cmd --state
not running
將IO調(diào)度系統(tǒng)設(shè)置為deadline模式
本系統(tǒng)查看
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
更改IO系統(tǒng)調(diào)度的方法根據(jù)系統(tǒng)不同,本次沒有測試。
關(guān)于IO調(diào)度
具體參考:/tupian/20230522/
總結(jié):
1、CFQ和DEADLINE考慮的焦點在于滿足零散IO請求上。對于連續(xù)的IO請求,比如順序讀,并沒有做優(yōu)化。為了滿足隨機IO和順序IO混合的場景,Linux還支持ANTICIPATORY調(diào)度算法。ANTICIPATORY的在DEADLINE的基礎(chǔ)上,為每個讀IO都設(shè)置了6ms的等待時間窗口。如果在這6ms內(nèi)OS收到了相鄰位置的讀IO請求,就可以立即滿足。
IO調(diào)度器算法的選擇,既取決于硬件特征,也取決于應(yīng)用場景。
在傳統(tǒng)的SAS盤上,CFQ、DEADLINE、ANTICIPATORY都是不錯的選擇;對于專屬的數(shù)據(jù)庫服務(wù)器,DEADLINE的吞吐量和響應(yīng)時間都表現(xiàn)良好。
然而在新興的固態(tài)硬盤比如SSD、Fusion IO上,最簡單的NOOP反而可能是最好的算法,因為其他三個算法的優(yōu)化是基于縮短尋道時間的,而固態(tài)硬盤沒有所謂的尋道時間且IO響應(yīng)時間非常短。
2、對于數(shù)據(jù)庫應(yīng)用, Anticipatory Scheduler 的表現(xiàn)是最差的。Deadline 在 DSS 環(huán)境表現(xiàn)比 cfq 更好一點,而 cfq 綜合來看表現(xiàn)更好一些。這也難怪 RHEL默認(rèn)的 IO 調(diào)度器設(shè)置為 cfq。
swapiness值在0和100之間,0代表大下怒使用物理內(nèi)存,然后使用SWAP分區(qū)。100則積極使用swap分區(qū),把內(nèi)存數(shù)據(jù)庫及時搬到swap分區(qū)下。
查看本系統(tǒng);
[root@localhost ~]# cat /proc/sys/vm/swappiness
30
如需更改,編輯/etc/sysctl.conf,加入vm.swappiness的值即可。
建議使用XFS文件系統(tǒng),相比ext4,更加方便管理,支持動態(tài)擴容, 刪除文件也方便。
具體參考:/tupian/20230522/
unlimit -a 查看參數(shù)
[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 默認(rèn)1024,表示單個進(jìn)程最多可以訪問1024各文件句柄。系統(tǒng)鏈接或表過多,會出現(xiàn)打不開或者范圍內(nèi)不了的情況。
max user processes 默認(rèn)7185,連接數(shù)。
修改/etc/security/limits.conf,加入限制的相關(guān)內(nèi)容,后重啟系統(tǒng)。
* hard nproc 65535
* soft nproc 65535
* soft nofile 65535
* hard nofile 65535
具體參考:/tupian/20230522/
關(guān)閉numa功能,可以更好分配內(nèi)存,不需要采用哦個seap方式來獲取內(nèi)存。
關(guān)閉方式分在BIOS、操作系統(tǒng)給中關(guān)閉,或者在數(shù)據(jù)庫啟動過程關(guān)閉。
numa --interleave=all /usr/loal/mysql/bin/mysqld_safe -defaults-file=/etc/my.cnf &
非一致存儲訪問結(jié)構(gòu) (NUMA : Non-Uniform Memory Access) 也是最新的內(nèi)存管理技術(shù)。它和對稱多處理器結(jié)構(gòu) (SMP : Symmetric Multi-Processor) 是對應(yīng)的。
MySQL單機單實例,建議關(guān)閉NUMA,關(guān)閉的方法有三種:
1.硬件層,在BIOS中設(shè)置關(guān)閉;
2.OS內(nèi)核,啟動時設(shè)置numa=off;
3.可以用numactl命令將內(nèi)存分配策略修改為interleave(交叉)