RHEL7.X MySQL 5.7.X 數據庫 標準建議 安裝手冊

 

 MySQL Expert REVIEW

 

RHEL7.X

MySQL 5.7.X 數據庫

安裝手冊

 

 

 

 

 

 

 

 

 

目       錄

系統需求... 1

安裝方式... 1

介質準備... 1

mysql 用戶創建... 1

安裝目錄規劃... 1

文件系統配置... 2

MySQL 安裝... 3

OS 優化配置... 6

關閉不必要的服務... 6

優化IO調度設置... 6

配置系統參數... 6

調整相關的參數... 7

 

 

系統需求

安裝方式

 

本文介紹的是在linux RHEL 7.x版本的操作系統上,安裝 mysql 5.7 安裝步驟。

安裝方式:

  1. Mysql 2進制bin 包安裝在服務器本地磁盤上。
  2. 數據文件都存放在本地磁盤中

介質準備

              mysql-5.7.27-el7-x86_64.tar

 

下載鏈接:

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-el7-x86_64.tar

 

           

mysql 用戶創建

 

groupadd mysql

useradd -g mysql mysql

 

 

安裝目錄規劃

 

以下目錄供參考:

目錄

文件系統路徑

備註

basedir

/mysql

Mysql 軟件目錄

datadir

/data

Mysql 數據文件目錄

tmpdir

/data/tmp

Mysql 臨時文件目錄

 

 

 

文件系統配置

 

建議使用 xfs 文件系統:

 

1.初始化磁盤空間

pvcreate /dev/sdb

pvdisplay

 

vgcreate mysqlvg /dev/sdb

vgdisplay

 

lvcreate -L 3999G -n mysql /dev/mysqlvg

 

2.格式化成xfs文件系統:

mkfs.xfs /dev/mysqlvg/mysql

 

mount –o rw,noatime,nodiratime,nobarrier,logbufs=8,logbsize=32k /dev/mysqlvg/mysql  /data

 

#vi /etc/fstab

/dev/mysqlvg/mysql  /data  ext4   defaults   1 2

 

 

文件系統屬主設置:

           chown mysql:mysql /mysql

            chown -R mysql:mysql /data

 

MySQL 安裝

 

解壓mysql安裝包:

tar xvf mysql-5.7.XXX.tar –C /mysql

           

 

            初始化mysql:

           使用-initialize-insecure 爲 root@local 用戶生成空密碼,後續需要設置密碼;

 

            cd /mysql

            ./bin/mysqld --no-defaults --user=mysql --basedir=/mysql

--datadir=/data  --initialize-insecure

 

 

配置mysql my.cnf 配置文件:

My.cnf 優化調整了部分參數,具體部分參數需要結合實際環境適當調整;

 

vi /etc/my.cnf

 

[client]

port = 3306

socket   = /data/mysql.sock

 

[mysql]

prompt='mysql [\h] {\u} (\d) > '

 

[mysqld]

# basic settings #

user = mysql

port = 3306

socket   = /data/mysql.sock

basedir  = /mysql

datadir  = /data/

character-set-server = utf8mb4

transaction_isolation = READ-COMMITTED

explicit_defaults_for_timestamp = 1

max_allowed_packet = 64M

event_scheduler = 1

query_cache_size = 0

query_cache_type = 0

open_files_limit = 65535

 

# connection #

interactive_timeout = 1800

wait_timeout = 1800

lock_wait_timeout = 1800

skip_name_resolve = 1

max_connections = 1024

max_connect_errors = 1000000

 

# table cache performance settings

table_open_cache = 4096

table_definition_cache = 4096

table_open_cache_instances = 64

 

# session memory settings #

read_buffer_size = 16M

read_rnd_buffer_size = 32M

sort_buffer_size = 32M

tmp_table_size = 64M

join_buffer_size = 128M

thread_cache_size = 64

 

# innodb settings #

#根據服務器實際內存配置 一般不要超過服務器總內存 80%

innodb_buffer_pool_size = 32G

# 8 default to buffer pool size / 2GB (so 16 for 32g pool) if concurrency is high

innodb_buffer_pool_instances = 16

innodb_buffer_pool_load_at_startup = 1

innodb_buffer_pool_dump_at_shutdown = 1

innodb_lru_scan_depth = 4096

innodb_lock_wait_timeout = 5

 

# 根據您的服務器IOPS能力適當調整

# 一般配普通SSD盤的話,可以調整到 10000 - 20000

# 配置高端PCIe SSD卡的話,則可以調整的更高,比如 50000 - 80000

innodb_io_capacity = 4000

innodb_io_capacity_max = 8000

 

innodb_flush_method = O_DIRECT

innodb_log_file_size = 2G

innodb_log_files_in_group = 3

innodb_log_buffer_size = 64M

innodb_write_io_threads = 16

innodb_read_io_threads = 16

innodb_purge_threads = 4

innodb_large_prefix = 1

##>=5.6 打印死鎖信息到error log

innodb_print_all_deadlocks = 1

innodb_strict_mode = 1

innodb_sort_buffer_size = 128M

innodb_file_per_table = 1

innodb_stats_persistent_sample_pages = 64

#auto-inc lock set:

innodb_autoinc_lock_mode = 2

innodb_online_alter_log_max_size= 4G

innodb_open_files=4000

 

# for SSD:if you have SSD storage

#  Set to 0 data on SSDs, 1 for spinning disks. If mixed, 0 is probably best.

#innodb_flush_neighbors = 0

 

 

[mysqldump]

quick

max_allowed_packet = 32M

single-transaction

 

            啓動mysql:

 

           cd /mysql/

            bin/mysqld_safe &

 

           

            修改mysql 超級用戶密碼:

            /mysql/bin/mysql

 

            set password for root@localhost=password("mysql");

 

 

OS 優化配置

關閉不必要的服務

vi /etc/selinux/config   ==>SELINUX=disabled

 

#停止firewall

systemctl stop firewalld.service

#禁止firewall開機啓動

systemctl disable firewalld.service

# systemctl stop avahi-daemon.socket avahi-daemon.service

# systemctl disable avahi-daemon.socket avahi-daemon.service

# systemctl stop postfix

# systemctl disable postfix

 

優化IO調度設置

vi /etc/grub.conf  添加elevator=deadline,需重啓機器生效。

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE:  You have a /boot partition.  This means that

#          all kernel and initrd paths are relative to /boot/, eg.

#          root (hd0,1)

#          kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-LogVol01

#          initrd /initrd-[generic-]version.img

#boot=/dev/sda1

device (hd0) HD(1,800,64000,e1fc1233-0f25-467e-9461-0739facbf83c)

default=0

timeout=5

splashimage=(hd0,1)/grub/splash.xpm.gz

hiddenmenu

title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)

    root (hd0,1)

    kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-LogVol01 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/LogVol01 SYSFONT=latarcyrheb-sun16 crashkernel=128M  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=VolGroup/LogVol00 rd_NO_DM rhgb quiet transparent_hugepage=never elevator=deadline

    initrd /initramfs-2.6.32-431.el6.x86_64.img

 

 

 

配置系統參數

                          修改 /etc/sysctl.conf 

vm.swappiness=1

修改之後使用sysctl –p命令使得修改生效

 

調整相關的參數

修改 /etc/security/limits.conf

 

mysql soft nofile 8192

mysql hard nofile 65536

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章