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

 

本文主要介紹MySQL二進制軟件包的安裝/啓動/關閉過程。mysql

也許有人要問爲何要選擇二進制的安裝方式呢?linux

其實答案很簡單,官方版本中已經把全部功能都配置好了,咱們能夠很方便地拿來使用。sql

官方MySQL有四個版本:GA版本、DMR版本、RC版本和Beta版本。通常狀況下,生產環境或者測試環境都數據庫

選擇GA版本(常規可用的版本,通過bug修復測試過)。vim

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

下載完成之後能夠檢驗一下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

一、安裝前系統環境檢測

不論是MySQL哪一個版本的安裝,爲了能夠很順利地把MySQL數據庫安裝好,作好後期數據庫的優化工做,在前期進行Linux的系統檢測是十分有必要的。app

1.一、selinux和iptables須要關閉,把SELINUX=disabled,改完重啓服務器生效。

我這裏沒有iptables用的是firewall因此不用關閉iptablesoop

1.二、I/O調度系統默認是cfq模式,這裏強烈建議使用deadline模式

查看I/O調度文件:性能

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

1.三、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.四、文件系統的選擇

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

1.五、操做系統的限制

先來查看一些當前操做系統的限制狀況,使用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.六、numa須要關閉

簡單來說關閉numa功能,能夠更好地分配內存,不須要採用swap的方式來獲取內存。

由於有經驗的系統管理員和DBA都知道使用swap致使的數據庫性能降低有多麼的噁心。

關閉方式也分在BIOS、操做系統中關閉,或者是在數據庫啓動過程當中關閉。

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

二、MySQL5.7版本安裝過程

檢查完操做系統環境後,進入MySQL安裝階段,總結爲「三部曲+一步走」的方式。

2.一、第一部曲

建立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.二、第二部曲

建立MySQL數據庫的數據目錄(datadir),這裏能夠選擇建立在/mysql/下面:

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

也要對數據目錄受權:

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

2.三、第三部曲

因爲是二進制的安裝方式,這裏的數據庫配置文件須要本身配置好,到此完成最後一部曲

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

密碼:tse

2.四、最後一步

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版本的安裝啓動方式和系統優化的部分優化說明。

相關文章
相關標籤/搜索