使用的包
mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
可能需要清理的包
yum remove -y mariadb-libs
安裝
tar -xf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/mysql
#將數(shù)據(jù)放在/var/local/mysql/data下
#將日志放在/var/log/mysql下
#將pid文件和socker文件放在/var/local/mysql下
mkdir -p /var/local/mysql/data /var/log/mysql/bin-log
useradd -rs /bin/false mysql
chown -R mysql. /var/local/mysql /var/log/mysql
#從庫還需要
mkdir /var/log/mysql/relay-log
chown mysql. /var/log/mysql/relay-log
主庫/etc/my.cnf
[mysqld]
#常規(guī)選項
server_id=51
character-set-server=utf8
collation-server=utf8_general_ci
default_storage_engine=InnoDB
datadir=/var/local/mysql/data
socket=/dev/shm/mysql.sock
#這個參數(shù)很奇怪,不想別的參數(shù),不區(qū)分-和_,這里只能寫成pid-file
pid-file=/var/local/mysql/mysql.pid
port=3306
log_error=/var/log/mysql/mysqld_err.log
user=mysql
lower_case_table_names=1
secure_file_priv=/var/local/mysql
#InnoDB相關(guān)
innodb_file_per_table=1
#雙一選項之一
innodb_flush_log_at_trx_commit=1
#binlog相關(guān)
log_bin=/var/log/mysql/bin-log/binlog
binlog_format=ROW
expire_logs_days=8
#雙一選項之一
sync_binlog=1
#gtid相關(guān)
gtid_mode=on
enforce_gtid_consistency=1
#慢查詢相關(guān)
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow_sql.log
long_query_time=0.1
log_queries_not_using_indexes=1
[mysql]
socket=/dev/shm/mysql.sock
prompt=\h:[\\U\\_\\d]>\\_
從庫/etc/my.cnf
[mysqld]
#常規(guī)選項
server_id=58
character-set-server=utf8
collation-server=utf8_general_ci
default_storage_engine=InnoDB
datadir=/var/local/mysql/data
socket=/dev/shm/mysql.sock
pid-file=/var/local/mysql/mysql.pid
port=3306
log_error=/var/log/mysql/mysqld_err.log
user=mysql
lower_case_table_names=1
secure_file_priv=/var/local/mysql
#從庫只讀
read_only=1
super_read_only=1
#為保證slave recovery,
#給出
#sync_binlog=1
#relay_log_recovery=1
#MASTER_AUTO_POSITION=1
#指定master.info和relay-log.info路徑
master_info_file=/var/log/mysql/master.info
relay_log_info_file=/var/log/mysql/relay-log.info
#relay_log_info_repository=TABLE
#指定relay-log文件路徑
relay_log=/var/log/mysql/relay-log/relaylog
#故障日志恢復(fù)相關(guān)
relay_log_recovery=1
#MHA相關(guān)
relay_log_purge=0
#InnoDB相關(guān)
innodb_file_per_table=1
#雙一選項之一
innodb_flush_log_at_trx_commit=1
#binlog相關(guān)
#默認情況下,從庫不再記錄復(fù)制主庫的SQL的binlog了,
#這個配置項置為1,記錄從主庫來的SQL的binlog
#log_slave_updates=1
log_bin=/var/log/mysql/bin-log/binlog
binlog_format=row
expire_logs_days=8
#雙一選項之一
sync_binlog=1
#gtid相關(guān)
gtid_mode=on
enforce_gtid_consistency=1
#慢查詢相關(guān)
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow_sql.log
long_query_time=0.1
log_queries_not_using_indexes=1
[mysql]
socket=/dev/shm/mysql.sock
prompt=\h:[\\U\\_\\d]>\\_
執(zhí)行初始化程序
cd /usr/local/mysql
cp support-files/mysql.server /etc/init.d/
#編輯啟動腳本
vim /etc/init.d/mysql.server
#basedir=/usr/local/mysql
#datadir=/var/local/mysql/data
bin/mysqld --initialize-insecure
service mysql.server start
chkconfig --add mysql.server
chkconfig mysql.server on
#從庫需要將`/etc/my.cnf`中的`super_read_only=1`注釋掉
bin/mysql_secure_installation
#從庫需要將`/etc/my.cnf`中的`super_read_only=1`取消注釋
配置alias
vim ~/.bashrc
alias mysql='/usr/local/mysql/bin/mysql -p'
alias mysqldump='/usr/local/mysql/bin/mysqldump'
alias mysqlbinlog='/usr/local/mysql/bin/mysqlbinlog'
source ~/.bashrc
參考文檔
Section 16.2.4.2 Slave Status Logs
Section 16.3.2 Handling an Unexpected Halt of a Replication Slave