溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

How to install MySQL 5.7 on CentOS 7.3

發(fā)布時間:2020-06-09 07:05:57 來源:網(wǎng)絡(luò) 閱讀:919 作者:jinyan2049 欄目:MySQL數(shù)據(jù)庫
基于centos?7的mysql?5.7自動化安裝,這里順便說一下my.cnf里的一些定義的參數(shù)
比如下面兩個
innodb_buffer_pool_dump_at_shutdown=1?#關(guān)閉時把熱數(shù)據(jù)dump到本地磁盤
innodb_buffer_pool_load_at_startup=1??#啟動時把熱數(shù)據(jù)加載到內(nèi)存

因為mysql重啟時候會面臨一個問題,就是如何將之前頻繁訪問的數(shù)據(jù)重新加載回Buffer中,
也就是說如何對InnoDB?Buffer?Pool進(jìn)行預(yù)熱來快速恢復(fù)之前的性能狀態(tài)。

增加了undo?log的自定義目錄,因為把undo?log從共享表空間ibdata1里拆分出去的話,需要
在my.cnf里提前指定好,不然等數(shù)據(jù)庫啟動好后再指定會報錯。
innodb_undo_log_truncate=1?#開啟在線回收
innodb_max_undo_los_size=1G?#這個就是閾值(默認(rèn)是1GB)時,會觸發(fā)truncate回收動作。

然后說一下,下面這個配置
innodb_temp_data_file_path?=?ibtmp1:12M:autoextend:max:5G
因為ibtmp1文件是?MySQL5.7的新特性,MySQL5.7使用了獨(dú)立的臨時表空間來存儲臨時表數(shù)據(jù),
初始化12M,且默認(rèn)無上限,我這里設(shè)定了最高不能超過5g,釋放這個臨時表空間唯一的辦法就
是啟數(shù)據(jù)庫。

innodb_read_io_threads,?innodb_write_io_threads:?文件讀寫的?I/O?線程數(shù)
可根據(jù)并發(fā)量和?CPU?核心數(shù)適當(dāng)調(diào)整

也不要再去糾結(jié)
query_cache_size和query_cache_type這兩個參數(shù)了,這對于mysql來說就是雞肋
而且默認(rèn)就是關(guān)閉的,建議采用默認(rèn)值,也就是設(shè)置為0,關(guān)閉

Redo?logs?記錄了所有的數(shù)據(jù)變更
恢復(fù)時間不再是一個問題
innodb_log_file_size?=?2047M?before?5.6
innodb_log_file_size>=?2047M?from?5.6??
So?...?越大系統(tǒng)性能更穩(wěn)定

這個大家應(yīng)該都知道
innodb_buffer_pool_size
你懂的,自己物理內(nèi)存大小的50~70%

最后還有一點,新版的mysql默認(rèn)監(jiān)聽在IPv6上,記得關(guān)閉掉它
bind-address=0.0.0.0

當(dāng)mysql?數(shù)據(jù)庫發(fā)生死鎖時,?innodb?status?里面會記錄最后一次死鎖的相關(guān)信息,但mysql?錯誤日志里面

不會記錄死鎖相關(guān)信息,要想記錄,啟動?innodb_print_all_deadlocks??參數(shù)?。

當(dāng)系統(tǒng)并發(fā)很高時,很多的線程等待同一個行鎖,死鎖檢測可能會拖慢系統(tǒng),這個時候關(guān)閉死鎖檢測可能更好

innodb_print_all_deadlocks?=?1

最后說一句:MySQL默認(rèn)的隔離級別不適合大部分的應(yīng)用場景,而且容易發(fā)生死鎖,所以我這里改成了read-committed

好了,最后就是安裝步驟了,其實都已經(jīng)腳本化了。

mkdir?-p?/home/tools
cd?/home/tools
yum?-y?install?numactl?libaio
wget?http://god.nongdingbang.net/downloads/mysql-5.7-el7.tgz?&&?tar?zxvf?mysql-5.7-el7.tgz
if?[?$??-eq?0?];then
rpm?-Uvh?mysql*.rpm
fi
mkdir?-p?/data/{mysql_data,mysql_log,mysql_slow,mysql_undo}
chown?-R?mysql.mysql?/data/*
cat?>/etc/my.cnf<<EOF
[client]
port=3306
socket=/tmp/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
port=3306
character-set-server=utf8
socket=/tmp/mysql.sock
datadir=/data/mysql_data
explicit_defaults_for_timestamp=true
lower_case_table_names=1
sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
bind-address=0.0.0.0
back_log=103
max_connections=500
max_connect_errors=100000
table_open_cache=512
external-locking=FALSE
max_allowed_packet=128M
sort_buffer_size=2M
join_buffer_size=2M
thread_cache_size=51
query_cache_size=0
query_cache_type=0
#query_cache_limit=4M
transaction_isolation=READ-COMMITTED
tmp_table_size=96M
max_heap_table_size=96M
log-error=/data/mysql_log/error.log
###***slowqueryparameters
long_query_time=2
slow_query_log=1
slow_query_log_file=/data/mysql_slow/slow.log
###***binlogparameters
log-bin=/data/mysql_log/mysql-bin
binlog_cache_size=1M
max_binlog_cache_size=4096M
max_binlog_size=1024M
binlog_format=ROW
binlog_row_image=full
expire_logs_days=3
sync_binlog=0
###***undolog
innodb_undo_directory=/data/mysql_undo
innodb_undo_logs=128
innodb_undo_tablespaces=4
innodb_undo_log_truncate=1
innodb_max_undo_log_size=1G
innodb_purge_rseg_truncate_frequency
#***MyISAMparameters
key_buffer_size=16M
read_buffer_size=1M
read_rnd_buffer_size=16M
bulk_insert_buffer_size=1M
###***master-slavereplicationparameters
server-id=1
#read-only=1
#replicate-wild-ignore-table=mysql.%
###***Multi-Threaded?Slave
#slave-parallel-type=LOGICAL_CLOCK
#slave-parallel-workers=16
#master_info_repository=TABLE
#relay_log_info_repository=TABLE
relay_log_recovery=ON
#***Innodbstorageengineparameters
innodb_buffer_pool_dump_at_shutdown=1
innodb_buffer_pool_load_at_startup=1
innodb_buffer_pool_size=16G
innodb_data_file_path=ibdata1:10M:autoextend
innodb_temp_data_file_path?=?ibtmp1:12M:autoextend:max:5G
#innodb_file_io_threads=8
innodb_thread_concurrency=0
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=16M
innodb_log_file_size=2048M
innodb_log_files_in_group=2
innodb_max_dirty_pages_pct=75
innodb_buffer_pool_dump_pct=50
innodb_lock_wait_timeout=50
innodb_file_per_table=on
innodb_flush_neighbors=0
innodb_flush_method=O_DIRECT
innodb_read_io_threads=16
innodb_write_io_threads=16
innodb_io_capacity?=?5000
#innodb_print_all_deadlocks?=?1
wait_timeout?=?14400
interactive_timeout?=?14400
[mysqldump]
quick
max_allowed_packet=128M
?
[myisamchk]
key_buffer=16M
sort_buffer_size=16M
read_buffer=8M
write_buffer=8M
?
[mysqld_safe]
open-files-limit=28192
log-error=/data/mysql_log/error.log
pid-file=/data/mysql_data/mysqld.pid
EOF

##?Initialize?MySQL?configuration
mysqld?--defaults-file=/etc/my.cnf?--user=mysql?\
--datadir=/data/mysql_data?--initialize-insecure

##?Start?mysql
systemctl?restart?mysqld?&&?systemctl?enable?mysqld

##?Setting?root's?password?for?mysql
##############################################
read?-s?-p?"Enter?password?:?"?password
mysql?-e?"ALTER?USER?'root'@'localhost'?IDENTIFIED?BY?'"$password"';"
mysql?-uroot?-p"$password"?-Dmysql?-e?"select?user,host,authentication_string,password_expired?from?user;"
mysql?-uroot?-p"$password"?-e?"flush?privileges;"

echo?Your?password?is?"$password"


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI