MySQL數據庫的安裝

1 整體規劃

MySQL可運行的最小資源需求極低。InnoDB緩衝池的默認大小僅128M。基於基準測試數據,MySQL內存佔用從1G到64G運行效率提高明顯,CPU從1核至48核運行效率提高明顯,進一步增長資源性能提高趨於平緩。而建議單數據庫主機數據庫內存設置在40%-60%左右。建議主機內存不超過126G,CPU核數不超過48核。mysql

操做系統linux

CentOS Linux release 7.5.1804sql

處理器數據庫

1bash

內存服務器

4G網絡

硬盤架構

38G運維

主機名稱socket

chenzx

IP地址

192.168.56.8

1.1 用戶組和用戶規劃

MySQL數據庫建議運行在特定的用戶與用戶組下。對於同一主機安裝不一樣MySQL數據庫的場景,建議使用不一樣的用戶管理不一樣的數據庫。

用戶ID

用戶名稱

用戶組ID

用戶組名稱

備註

1001

mysql

1001

mysql

數據庫操做系統用戶

表-用戶組規劃

用戶不存在則很使用如下命令建立:

# groupadd -g 1001 mysql

# useradd –u 1001 –g mysql mysql

若已存在則使用如下命令修改:

# groupmod -g 1001 mysql

# usermod -s /bin/bash -u 1001 mysql

1.2 網絡規劃

應用經過服務IP接入PROD數據庫,故障時經過服務IP的漂移實現高可用性。本文不涉及高可用部分,須要開放3306端口,固定IP用於複製接入,服務IP用於應用接入。

接口名

主機名

IP地址

端口

描述

ens32

chenzx

192.168.5.68

3306

固定IP地址

1.3 數據庫文件系統規劃

數據庫相關文件系統規劃,一個好的文件系統規劃,有利於後續運維人員進行維護。

路徑

文件系統大小

功能說明

/mysql/mysql_data

200GB

數據目錄,存放數據文件,大小根據數據量而定。

/mysql/mysql_log

200GB

數據庫redo、bin-log、relay-log等日誌,能夠根據具體需求再進行拆分。

/mysql/mysql_dump

100GB

備份目錄,數據庫備份或者其餘數據文件備份。

建立相關目錄:

# mkdir –p /mysql/mysql_data

# mkdir –p /mysql/mysql_log

# mkdir –p /mysql/mysql_dump

修改相關目錄的屬組信息:

# chown –R mysql:mysql /mysql/mysql_data

# chown –R mysql:mysql /mysql/mysql_log

# chown –R mysql:mysql /mysql/mysql_dump

數據庫目錄規劃:

路徑

功能說明

/mysql/mysql-5.7.23

區分版本的軟件安裝目錄,軟鏈接(/usr/local/mysql)指向目錄

/home/mysql

mysql用戶家目錄

/mysql/mysql_data/mysql

數據目錄,存放數據文件

/mysql/mysql_data/tmp

臨時數據目錄

/mysql/mysql_log/redolog

redo日誌目錄

/mysql/mysql_log/binlog

二進制日誌目錄

/mysql/mysql_log/relaylog

複製用中繼日誌目錄

/mysql/mysql_log/slowlog

指定慢查詢日誌目錄

/mysql/mysql_log/innodb

InnoDB日誌目錄

/mysql/mysql_log/errlog

錯誤日誌目錄

建立相關目錄:

# mkdir –p /mysql/mysql_log/redolog

# mkdir –p /mysql/mysql_log/binlog

# mkdir –p /mysql/mysql_log/relaylog

# mkdir –p /mysql/mysql_log/slowlog

# mkdir –p /mysql/mysql_log/innodb

# mkdir –p /mysql/mysql_log/errlog

修改相關目錄的屬組信息:

# chown –R mysql:mysql /mysql/mysql_log/redolog

# chown –R mysql:mysql /mysql/mysql_log/binlog

# chown –R mysql:mysql /mysql/mysql_log/relaylog

# chown –R mysql:mysql /mysql/mysql_log/slowlog

# chown –R mysql:mysql /mysql/mysql_log/innodb

# chown –R mysql:mysql /mysql/mysql_log/errlog

注意:

MySQL數據目錄規劃因根據數據庫預計承載的數據量而定,當超過1T時,建議規劃多個數據目錄。

MySQL安裝目錄所在的文件系統,建議保持15G左右的空閒,用於後續升級。

MySQL redo日誌目錄大小應根據數據庫平常寫入量而定,建議15G左右。

MySQL 二進制日誌存放歸檔的操做記錄,根據數據庫的繁忙程度,建議在50-100G左右。

若是是集羣架構,須要計劃中繼日誌目錄。中繼日誌大小根據主庫二進制日誌產生量而定,通常是主庫二級制目錄大小的50%。

2 系統參數配置

3 MySQL安裝

3.1 下載mysql介質

本文主要介紹MySQL社區版二進制軟件包的安裝過程。通常狀況下,PROD環境和TEST環境都應該選用GA版本,切勿使用DMR版本、RC版本和Beta版本。二進制軟件包能夠到官網(https://www.mysql.com/downloads/)進行下載。

clip_image002

點擊社區版本後進入下一個界面,選擇「MySQL Community Server」。

clip_image004

3.2 上傳介質並校驗

使用scp或者ftp等工具把安裝包(mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz)上傳至服務器,並使用命令生成軟件安裝包的md5碼與官網md5碼進行比對:

$ md5sum mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

比對結果必須一致!!!

官網提供MD5碼

下載後生成MD5碼

比對結果

d903d3dbf235b74059a4b3e216c71161

d903d3dbf235b74059a4b3e216c71161

一致

3.3 安裝MySQL

二進制的安裝方式中,官方版本中已經把全部功能都配置好了,安裝使用起來方便簡單。

1) 解壓安裝包

$ su - mysql

$ tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz -C /mysql/

2) 解壓文件更名

$ su - mysql

$ mv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql-5.7.23/

3) 創建軟連接

$ su -

# ln -s /mysql/mysql-5.7.23/ /usr/local/mysql

# chown mysql:mysql -R /usr/local/mysql

3.4 初始化MySQL

因爲是二進制安裝,數據庫的配置文件須要本身配置。

$ cat /etc/my.cnf

[mysql]

prompt="\u@\h:\p \R:\m:\s [\d]>"

[client]

port=3306

socket=/tmp/mysql.sock

[mysql_multi]

mysqld = /usr/local/mysql/bin/mysqld

mysqladmin = /usr/local/mysql/bin/mysqladmin

user = mysql

[mysqld]

############################ system ##################################

basedir = /usr/local/mysql

server-id = 189

port = 3306

user = mysql

read_only = off

character-set-server = utf8

socket = /tmp/mysql.sock

datadir = /mysql/mysql_data/mysql

lower_case_table_names = 1

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

show_compatibility_56 = on

#skip_slave_start = 1

explicit_defaults_for_timestamp = ON

skip-name-resolve

log_timestamps = SYSTEM

#skip_grant_tables

############################ log ##################################

max-binlog-size = 1G

binlog_cache_size = 2097152

master_info_repository = TABLE

innodb_log_group_home_dir = /mysql/mysql_log/innodb/

log-bin = /mysql/mysql_log/binlog/logbin.log

relay_log = /mysql/mysql_log/relaylog/relay.log

log-error = /mysql/mysql_log/errlog/error.err

slow-query-log-file = /mysql/mysql_log/slowlog/slow.log

slow-query-log = 1

long_query_time = 1

relay_log_info_repository = TABLE

relay_log_recovery = 1

slave_preserve_commit_order = 1

log-queries-not-using-indexes = 0

expire_logs_days = 7

binlog_format = row

sync-binlog = 1

log_bin_trust_function_creators = 1

########################### connection ##############################

open-files-limit = 65535

symbolic-links = 0

max_allowed_packet = 1024M

max_connections = 3000

max_user_connections = 3000

max_connect_errors = 1000000

transaction_isolation = READ-COMMITTED

########################### BUFFER ##############################

query-cache-type = 0

query-cache-size = 0

thread-cache-size = 50

innodb_buffer_pool_size = 2G

innodb_buffer_pool_instances = 8

innodb_buffer_pool_load_at_startup = 1

innodb_buffer_pool_dump_at_shutdown = 1

innodb_print_all_deadlocks = 1

innodb_log_file_size = 1G

innodb_log_buffer_size = 16M

innodb_flush_log_at_trx_commit = 1

innodb_log_files_in_group = 3

################GTID#################

#gtid_mode = 1

#enforce_gtid_consistency = 1

slave_parallel_workers = 4

slave_parallel_type = LOGICAL_CLOCK

slave_preserve_commit_order = 1

log_slave_updates = 1

[mysqld_safe]

log-error = /mysql/mysql_log/errlog/error.err

pid-file = /mysql/mysql.pid

注意:

MySQL讀取配置文件的順序是

1) /etc/my.cnf

2) /etc/mysql/my.cnf

3) /usr/local/mysql/etc/my.cnf~/.my.cnf

建立數據庫

$ /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/mysql/mysql_data/mysql --user=mysql --initialize

3.5 啓動MySQL

$ /usr/local/mysql/bin/mysqld_safe --user=mysql&

相關文章
相關標籤/搜索