下载mysql二进制包
useradd mysql -s /sbin/nologin -M
cd /opt/
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mkdir /application
mkdir -p /data/mysql/data
mv mysql-5.7.28-linux-glibc2.12-x86_64 /application/mysql
mkdir /data/mysql/data -p
chown -R mysql.mysql /application/*
chown -R mysql.mysql /data/mysql
mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
配置文件
cat >/etc/my.cnf<<EOF
[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir=/application/mysql
datadir=/data/mysql/data
pid-file = /data/mysql/data/mysql.pid
server-id = 81
log_bin = mysql-bin
binlog_format = ROW
enforce-gtid-consistency=true
gtid-mode=on
master_info_repository=TABLE
relay_log_info_repository=TABLE
sync-master-info=1
slave-parallel-workers=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
[mysql]
socket=/tmp/mysql.sock
EOF
配置说明
binlog_format = ROW //建议row
log-slave-updates=true //在从服务器进入主服务器传入过来的修改日志所使用,在Mysql5.7之前主从架构上使用gtid模式的话,必须使用此选项,在Mysql5.7取消了,会增加系统负载。
enforce-gtid-consistency=true // 强制gtid一直性,用于保证启动gitd后事务的安全;
gtid-mode=on //开启gtid模式
master_info_repository=TABLE
relay_log_info_repository=TABLE //指定中继日志的存储方式,默认是文件,这样配置是使用了 两个表,是INNODB存储引擎,好处是当出现数据库崩溃时,利用INNODE事务引擎的特点,对这两个表进行恢复,以保证从服务器可以从正确位置恢复数据。
sync-master-info=1 //同步master_info,任何事物提交以后都必须要把事务提交以后的二进制日志事件的位置对应的文件名称,记录到master_info中,下次启动自动读取,保证数据无丢失
slave-parallel-workers=2 //设定从服务器的启动线程数,0表示不启动
binlog-checksum=CRC32 //主服务端在启动的时候要不要校验bin-log本身的校验码
master-verify-checksum=1 //都是在服务器出现故障情况下,读取对服务器有用的数据
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1 //启用后,可用于在二进制日志记录事件相关信息,可降低故障排除复杂度(并非强制启动)
systemd启动配置
cat >/etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
systemctl start mysqld