生产环境centos7 安装mysql 5.7.35

  • 1.初始化系统,并重启
  • 2.卸载原有mysql
  • 2.安装依赖
  • 4.创建mysql的用户
  • 5.创建mysql的数据目录
  • 6.安装 mysql
  • 7. 修改 mysql 默认配置
  • 8.初始化 mysql
  • 9.查看 初始化密码
  • 10. 启动 mysql
  • 11.设置 mysql 服务自启动
  • 12.检查 mysql 服务自启动状态
  • 13.登录 mysql
  • 14.在 master 配置 mysql 主从 基于日志复制
  • 15.创建日志目录
  • 16.修改 master 配置文件
  • 17.重启 mysql 服务
  • 18.在 slave 上配置 mysql 主从 基于日志复制
  • 19.创建日志目录
  • 20.修改 salve 配置文件
  • 21.重启 mysql 服务
  • 22.主从测试

1.初始化系统,并重启

#!/bin/bash
#initialization scriptsif [ ! -d "/opt/scripts" ]; thenmkdir -p /opt/scripts
fiecho "等待1s:#1/判断centos7还是centos6系统"
sleep 1
VERSION=`cat /etc/redhat-release|awk -F " " '{print $3}'|awk -F "." '{print $1}'`
if [ "$VERSION" == "6" ];then
VERSION='6'
echo "centos6"
else
VERSION='7'
echo "centos7"
fiecho "-----------------------------华丽分隔符----------------------------------------"
echo "等待2s:#2/检查是否能ping 通百度"
sleep 1
echo "1S"
sleep 1
echo "2S"
PING=`ping -c 3 www.baidu.com`
if [ "$?" -ne 0 ];thenecho "ping 不通 baidu 请检查 /etc/resolv.conf"exit 1
elseecho "能ping 通 baidu"
fiecho "-----------------------------华丽分隔符----------------------------------------"
echo "等待5s: #3/请检查hostname 若没设置请 ctrl+c 退出设置"
sleep 1
echo "1S"
sleep 2
echo "2S"
sleep 3
echo "3S"
sleep 4
echo "4S"
sleep 5
echo "5S"echo "-----------------------------华丽分隔符----------------------------------------"
echo "等待2S:#4/关闭selinux "
sleep 2
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0echo "-----------------------------华丽分隔符----------------------------------------"
echo "等待2S:#5/关闭防火墙,并设置关闭开机自启动"
sleep 2
if [ "$VERSION" == "7" ];thensystemctl stop firewalld && systemctl disable firewalld
elseservice iptables stop && chkconfig iptables off
fiecho "-----------------------------华丽分隔符----------------------------------------"
echo "等待1S:#6/查看内存 cpu 硬盘大小"
sleep 1
MEM=`free -m`
#4.1查看物理CPU个数
physical_id=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
#4.2查看每个物理CPU中core的个数(即核数)
cpu_cores=`cat /proc/cpuinfo| grep "cpu cores"| uniq`
#4.3查看逻辑CPU的个数
processor=`cat /proc/cpuinfo| grep "processor"| wc -l`
echo "$MEM"
echo "####################################################"
echo "cpu物理个数 physical_id:          $physical_id"
echo "每个cpu中core的个数(即核数)       $cpu_cores"
echo "逻辑cpu的个数 processor:          $processor"
echo "####################################################"
#4.4硬盘大小
disk=`df -Th`
echo "$disk"echo "-----------------------------华丽分隔符----------------------------------------"
echo "等待2S:#7/是否换成阿里云的的源 "
yum -y install wget
echo "等待3秒:"
sleep 3
cat << EOF**********************1.[change aliyuan]2.[no change aliyuan]3.[exit]pls input the num you want:**********************
EOF
read -t 30 -p "pls input the num you want:" a
[ -n "`echo $a|sed 's#[0-9]##g'`" ] && {echo "Input error"exit 1
}
iffuncation(){if [ $a -eq 1 ];thenecho "change aliyuan"echo "等待3S"sleep 3mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupif [ "$VERSION" == "7" ];thenwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoelsewget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repofiyum clean allyum makecacheecho "等待3S"sleep 3
elif [ $a -eq 2 ];thenecho "no change aliyuan"
elif [ $a -eq 3 ];thenexit 1
elseecho "Input error"exit 1
fi
}
iffuncationecho "-----------------------------华丽分隔符----------------------------------------"
echo "等待3S:#8/下载必要的初始化的工具"sleep 3yum -y install net-tools tree nmap lrzsz dos2unix telnet screen vim lsof wget ntp rsyncecho "-----------------------------华丽分隔符----------------------------------------"
echo "等待3S:#9/修改ip和主机名的对应关系 /etc/hosts"sleep 3
cat > /etc/hosts << EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
EOF
if [ "$VERSION" == "7" ];thenecho "`ifconfig|sed -n '2p'|awk -F " " '{print $2}'` $HOSTNAME" >> /etc/hosts
elseecho "`ifconfig|sed -n '2p'|awk -F " " '{print $2}'|awk -F ":" '{print $2}'` $HOSTNAME" >> /etc/hosts
fiecho "-----------------------------华丽分隔符----------------------------------------"
echo "等待3S:#10/查看时间 并设置初始化时间"
date +%F\ %T
ntpdate cn.pool.ntp.org && hwclock -wecho "-----------------------------华丽分隔符----------------------------------------"
echo "#11/设置linux的最大文件打开数"
ulimit -SHn 1000000
ulimit -a
if [ "`egrep "* - nofile 1000000|* - nproc 1000000" /etc/security/limits.conf|wc -l`" == "0" ];thenecho "* - nofile 1000000" >> /etc/security/limits.confecho "* - nproc 1000000" >> /etc/security/limits.conf
elseecho "linux的最大文件打开数 设置成功或者之前已经设置过了"
fi
sleep 2echo "-----------------------------华丽分隔符----------------------------------------"
echo "#12/centos6系统设置grep加颜色别名"
if [ "$VERSION" == "6" ];thenif [ "`egrep "alias grep='grep --color=auto'" /etc/profile|wc -l`" == "0" ];thenecho "alias grep='grep --color=auto'" >>/etc/profilesource /etc/profileelseecho "centos6系统设置grep加颜色别名 设置成功或者之前已经设置过了"fifiecho "-----------------------------华丽分隔符----------------------------------------"
echo "#13/centos7特有的默认还有进程数限制/etc/security/limits.d/20-nproc.conf"
echo "#13/centos6特有的默认还有进程数限制/etc/security/limits.d/90-nproc.conf"
if [ "$VERSION" == "7" ];thensed -i 's#4096#65536#g' /etc/security/limits.d/20-nproc.conf elsesed -i 's#1024#65536#g' /etc/security/limits.d/90-nproc.conf
fiecho "-----------------------------华丽分隔符----------------------------------------"
echo "#14/禁止内存巨大页"
if [ "$VERSION" == "7" ];thenif [ "`egrep "transparent_hugepage" /etc/rc.d/rc.local |wc -l`" == "0" ];thenecho "echo 'never' >/sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.d/rc.localecho "echo 'never' >/sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.d/rc.localelseecho "禁止内存巨大页 设置成功或者之前已经设置过了"fi
elseif [ "`egrep "redhat_transparent_hugepage" /etc/rc.d/rc.local |wc -l`" == "0" ];thenecho "echo 'never' >/sys/kernel/mm/redhat_transparent_hugepage/enabled" >> /etc/rc.d/rc.localecho "echo 'never' >/sys/kernel/mm/redhat_transparent_hugepage/defrag" >> /etc/rc.d/rc.localelseecho "禁止内存巨大页 设置成功或者之前已经设置过了"fi
fi
chmod +x /etc/rc.d/rc.localecho "-----------------------------华丽分隔符----------------------------------------"
echo "#15/禁止swap交换"
if [ "`egrep "vm.swappiness=1" /etc/sysctl.conf|wc -l`" == "0" ];thenecho "vm.swappiness=1" >> /etc/sysctl.confsysctl -p
elseecho "禁止swap交换 设置成功或者之前已经设置过了"
fi

2.卸载原有mysql

[root@mysql mysql]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@mysql mysql]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

2.安装依赖

yum -y install autoconf &&  yum install perl-JSON

4.创建mysql的用户

[root@mysql mysql]# groupadd mysql && useradd -r -g mysql -s /bin/false mysql

5.创建mysql的数据目录

mkdir -p  /opt/data/soft/mysql

6.安装 mysql

[root@mysql mysql]# tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar  -C /opt/data/soft/mysql && cd /opt/data/soft/mysql
[root@mysql mysql]#  rpm -ivh mysql-community-*.rpm

7. 修改 mysql 默认配置

删除/etc/my.cnf原有内容并复制以下配置

[mysqld]######## basic settings ######### 服务器 ID , 主从唯一标识
server_id=10# 监听端口
#port=3306# 运行用户
user=mysql# 监听IP地址, 如果是127.0.0.1, 表示仅本机访问
#bind_address=127.0.0.1# 数据修改是否自动提交, 为0不自动提交
autocommit=1# 服务器字符集 , utf8mb4为超字符集, 兼容UTF-8并可存储4字节的图片
character_set_server=utf8mb4# 禁用DNS主机名查找, 启用以后用内网地址向mysqlslap请求响应快一半
#skip_name_resolve=1# 最大连接数
max_connections=2048# 主机连接错误次数等于max_connect_errors(默认10)时 , 再次尝试连接将被屏蔽. 可有效防止DDOS攻击
max_connect_errors=1000# 数据存储目录
datadir=/opt/data/mysql# socket方式运行文件存储路径
socket=/opt/data/mysql/mysql.sock# 进程PID文件
pid_file=/opt/data/mysql/mysqld.pid# 数据库事务隔离级别
# 1. READ-UNCOMMITTED(读取未提交内容)级别
# 2. READ-COMMITTED(读取提交内容)
# 3. REPEATABLE-READ(可重读)
# 4. SERIERLIZED(可串行化)
# 默认级别REPEATABLE-READ
transaction_isolation=READ-COMMITTEDexplicit_defaults_for_timestamp=1# join是ALL,index,rang或者Index_merge的时候使用的buffer
join_buffer_size=128M# 内部内存临时表的最大值
tmp_table_size=128M# 临时文件目录
tmpdir=/tmp# 最大接受的数据包大小
max_allowed_packet=16M# sql_mode 模式, 定义了你MySQL应该支持的sql语法, 对数据的校验等等, 限制一些所谓的不合法操作
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"# 服务器关闭交互式连接前等待活动的秒数
interactive_timeout=60# 服务器关闭非交互连接之前等待活动的秒数
wait_timeout=60# 读入缓冲区的大小
read_buffer_size=16M# 随机读缓冲区大小
read_rnd_buffer_size=32M# connection缓存
sort_buffer_size=32M######## log settings ######### 错误日志文件
log_error=/opt/data/mysql/mysqld.log# 是否开启慢查询日志收集, 1为启用, 0为禁用
slow_query_log=1# 慢查询日志文件
slow_query_log_file=/opt/data/mysql/log/slow.log# 记录未使用索引的语句
log_queries_not_using_indexes=1# 记录管理型慢SQL
log_slow_admin_statements=1# 记录 slave 产生的慢查询
log_slow_slave_statements=1# 每分钟记录到日志的未使用索引的语句数目, 超过这个值后只记录语句数量和花费的总时间
log_throttle_queries_not_using_indexes=10# 日志过期时间天数
expire_logs_days=90# binlog日志文件大小
max_binlog_size=100M# 记录慢查询超时时间, 默认为秒
long_query_time=3# 查询返回少于该参数指定行的SQL不被记录到慢查询日志
min_examined_row_limit=100

8.初始化 mysql

[root@mysql local]# mysqld --initialize --user=mysql

9.查看 初始化密码

grep "password" /opt/data/mysql/mysqld.log

10. 启动 mysql

 systemctl start mysqld &&systemctl status mysqldmysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since 四 2022-03-10 10:49:09 CST; 15s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 1977 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)Process: 1959 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)Main PID: 1980 (mysqld)CGroup: /system.slice/mysqld.service└─1980 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid3月 10 10:49:08 mysql systemd[1]: Starting MySQL Server...
3月 10 10:49:09 mysql systemd[1]: Started MySQL Server.

11.设置 mysql 服务自启动

systemctl enable mysqld

12.检查 mysql 服务自启动状态

[root@mysql mysql]# systemctl list-unit-files --type=service | grep -i mysqld
mysqld.service                                enabled
mysqld@.service                               disabled

13.登录 mysql

mysql -h 127.0.0.1 -uroot -p'xxxxxxxx'
#修改初始化密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxx';
切换到 mysql 数据库
use mysql;
查询 root 登录限制;
select user,host from user;
修改 root 登录限制为允许开放所有登录方式
update user set host = '%' where user = 'root';

14.在 master 配置 mysql 主从 基于日志复制

在 master 创建主从同步账号建立一个帐户 “dt_sync” , 且只能允许从 从服务器(10.10.220.41) 地址登陆, 密码是 **********

mysql> grant replication slave on *.* to 'dt_sync'@'10.10.220.41' identified by 'xxxxxxx';
Query OK, 0 rows affected, 1 warning (0.00 sec)
#刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#查询主从同步账号
`mysql> select user,host from user;
+---------------+--------------+
| user          | host         |
+---------------+--------------+
| root          | %            |
| dt_sync       | 172.16.0.167 |
| mysql.session | localhost    |
| mysql.sys     | localhost    |
+---------------+--------------+
4 rows in set (0.00 sec)
#退出
mysql> quit

15.创建日志目录

[root@mysql ~]# mkdir -p /opt/data/mysql/log
[root@mysql ~]# mkdir -p /opt/data/mysql/redolog/
[root@mysql ~]#  mkdir -p /opt/data/mysql/undolog/[root@mysql ~]# chown -R mysql:mysql /opt/data/mysql/log
[root@mysql ~]#chown -R mysql:mysql /opt/data/mysql/redolog
[root@mysql ~]# chown -R mysql:mysql /opt/data/mysql/undolog

16.修改 master 配置文件

删除/etc/my.cnf原有内容并复制以下优化内容到配置文件中

[mysqld]######## basic settings ######### 服务器 ID , 主从唯一标识
server_id=10# 监听端口
#port=3306# 运行用户
user=mysql# 监听IP地址, 如果是127.0.0.1, 表示仅本机访问
#bind_address=127.0.0.1# 数据修改是否自动提交, 为0不自动提交
autocommit=1# 服务器字符集 , utf8mb4为超字符集, 兼容UTF-8并可存储4字节的图片
character_set_server=utf8mb4# 禁用DNS主机名查找, 启用以后用内网地址向mysqlslap请求响应快一半
skip_name_resolve=1# 最大连接数
max_connections=2048# 主机连接错误次数等于max_connect_errors(默认10)时 , 再次尝试连接将被屏蔽. 可有效防止DDOS攻击
max_connect_errors=1000# 数据存储目录
datadir=/opt/data/mysql# socket方式运行文件存储路径
socket=/opt/data/mysql/mysql.sock# 进程PID文件
pid_file=/opt/data/mysql/mysqld.pid# 数据库事务隔离级别
# 1. READ-UNCOMMITTED(读取未提交内容)级别
# 2. READ-COMMITTED(读取提交内容)
# 3. REPEATABLE-READ(可重读)
# 4. SERIERLIZED(可串行化)
# 默认级别REPEATABLE-READ
transaction_isolation=READ-COMMITTEDexplicit_defaults_for_timestamp=1# join是ALL,index,rang或者Index_merge的时候使用的buffer
join_buffer_size=128M# 内部内存临时表的最大值
tmp_table_size=128M# 临时文件目录
tmpdir=/tmp# 最大接受的数据包大小
max_allowed_packet=16M# sql_mode 模式, 定义了你MySQL应该支持的sql语法, 对数据的校验等等, 限制一些所谓的不合法操作
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"# 服务器关闭交互式连接前等待活动的秒数
interactive_timeout=60# 服务器关闭非交互连接之前等待活动的秒数
wait_timeout=60# 读入缓冲区的大小
read_buffer_size=16M# 随机读缓冲区大小
read_rnd_buffer_size=32M# connection缓存
sort_buffer_size=32M######## log settings ######### 错误日志文件
log_error=/opt/data/mysql/mysqld.log# 是否开启慢查询日志收集, 1为启用, 0为禁用
slow_query_log=1# 慢查询日志文件
slow_query_log_file=/opt/data/mysql/log/slow.log# 记录未使用索引的语句
log_queries_not_using_indexes=1# 记录管理型慢SQL
log_slow_admin_statements=1# 记录 slave 产生的慢查询
log_slow_slave_statements=1# 每分钟记录到日志的未使用索引的语句数目, 超过这个值后只记录语句数量和花费的总时间
log_throttle_queries_not_using_indexes=10# 日志过期时间天数
expire_logs_days=90# binlog日志文件大小
max_binlog_size=100M# 记录慢查询超时时间, 默认为秒
long_query_time=3# 查询返回少于该参数指定行的SQL不被记录到慢查询日志
min_examined_row_limit=100######## master replication settings ######### binlog 日志文件
#log_bin=/opt/data/mysql/log/mysql-bin.log# binlog 索引文件
#log_bin_index=/opt/data/mysql/log/mysql-bin.index# sync_binlog=0, 当事务提交之后, MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘, 而让Filesystem自行决定什么时候来做同步, 或者cache满了之后才同步到磁盘
# sync_binlog=n, 当每进行n次事务提交之后, MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘
# MySQL中系统默认的设置是sync_binlog=0, 也就是不做任何强制性的磁盘刷新指令, 这时候的性能是最好的, 但是风险也是最大的. 因为一旦系统Crash, 在binlog_cache中的所有binlog信息都会被丢失. 而
# 当设置为"1"的时候, 是最安全但是性能损耗最大的设置. 因为当设置为1的时候, 即使系统Crash, 也最多丢失binlog_cache中未完成的一个事务, 对实际数据没有任何实质性影响.
# 从以往经验和相关测试来看, 对于高并发事务的系统来说, "sync_binlog"设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多
#sync_binlog=3# 启用 GTID 类型
#gtid_mode=on# 强制 GTID 一致性
#enforce_gtid_consistency=1# 主从一致性校验算法
#binlog_checksum=CRC32# slave更新是否记入日志, 在做双主架构时异常重要, 影响到双主架构是否能互相同步
#log_slave_updates=1# binlog日志格式
#binlog_format=row# 这个参数控制了当mysql启动或重启时, mysql在搜寻GTIDs时是如何迭代使用binlog文件的.  这个选项设置为真, 会提升mysql执行恢复的性能. 因为这样mysql-server启动和binlog日志清理更快
#binlog_gtid_simple_recovery=1# 跳过指定error no类型的错误, 设成all 跳过所有错误
#slave_skip_errors=ddl_exist_errors######## slave replication settings ######### binlog 日志文件
log_bin=/opt/data/mysql/log/mysql-bin.log# binlog 索引文件
log_bin_index=/opt/data/mysql/log/mysql-bin.index# sync_binlog=0, 当事务提交之后, MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘, 而让Filesystem自行决定什么时候来做同步, 或者cache满了之后才同步到磁盘
# sync_binlog=n, 当每进行n次事务提交之后, MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘
# MySQL中系统默认的设置是sync_binlog=0, 也就是不做任何强制性的磁盘刷新指令, 这时候的性能是最好的, 但是风险也是最大的. 因为一旦系统Crash, 在binlog_cache中的所有binlog信息都会被丢失. 而
# 当设置为"1"的时候, 是最安全但是性能损耗最大的设置. 因为当设置为1的时候, 即使系统Crash, 也最多丢失binlog_cache中未完成的一个事务, 对实际数据没有任何实质性影响.
# 从以往经验和相关测试来看, 对于高并发事务的系统来说, "sync_binlog"设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多
sync_binlog=3# 启用 GTID 类型
gtid_mode=on# 强制 GTID 一致性
enforce_gtid_consistency=1# binlog日志格式
binlog_format=row# 设置 slave 为只读 (仅限制普通用户,不限制超级用户)
read_only=1# slave 保存同步中继日志的位置
relay_log=/opt/data/mysql/log/relay.log# slave 同步中继日志索引文件
relay_log_index=/opt/data/mysql/log/relay-log-index# slave 节点保存 master 节点信息方式 , 设定为 file 会生成master.info 和 relay-log.info 2个文件 ; 设定为 table 时信息就会存在 mysql.master_slave_info 表中
master_info_repository=TABLE# 用于保存 slave 读取 relay log 的位置信息
relay_log_info_repository=TABLE# 当slave从库宕机后, 假如relay-log损坏了, 导致一部分中继日志没有处理, 则自动放弃所有未执行的relay-log, 并且重新从master上获取日志, 这样就保证了relay-log的完整性
relay_log_recovery=1# 这个参数控制了当mysql启动或重启时, mysql在搜寻GTIDs时是如何迭代使用binlog文件的.  这个选项设置为真, 会提升mysql执行恢复的性能. 因为这样mysql-server启动和binlog日志清理更快
binlog_gtid_simple_recovery=1# 跳过指定error no类型的错误, 设成all 跳过所有错误
slave_skip_errors=ddl_exist_errors# 在从库执行start slave的时候, 会将report-host和report-port(默认3306)发给主库, 主库记录在全局哈希结构变量 slave_list 中
# 如果想要连report-user和report-password也显示出来, 则需要主库配置参参数show-slave-auth-info
#report_port=3306
#report_host=172.16.0.167######## innodb settings ######### innodb每个数据页大小
innodb_page_size=16K# 缓存innodb表的索引、数据, 插入数据时的缓冲, 专用mysql服务器设置的大小:  操作系统内存的70%-80%最佳
innodb_buffer_pool_size=6G# 可以开启多个内存缓冲池, 把需要缓冲的数据hash到不同的缓冲池中, 这样可以并行的内存读写
innodb_buffer_pool_instances=8# 加载本地热数据到InnoDB缓存
innodb_buffer_pool_load_at_startup=1# 停止MySQL服务时, InnoDB将InnoDB缓冲池中的热数据保存到本地硬盘
innodb_buffer_pool_dump_at_shutdown=1# page cleaner线程每次刷脏页的数量
innodb_lru_scan_depth=2000# 事务等待获取资源等待的最长时间, 单位是秒
innodb_lock_wait_timeout=5# 这两个设置会影响InnoDB每秒在后台执行多少操作. 大多数写IO(除了写InnoDB日志)是后台操作的.
# 如果深度了解硬件性能(如每秒可以执行多少次IO操作),则使用这些功能是很可取的,而不是让它闲着
#innodb_io_capacity=4000
#innodb_io_capacity_max=8000# 默认值为 fdatasync.
# 如果使用 硬件RAID磁盘控制器, 可能需要设置为 O_DIRECT. 这在读取InnoDB缓冲池时可防止双缓冲(double buffering)效应, 否则会在文件系统缓存与InnoDB缓存间形成2个副本(copy).
# 如果不使用硬件RAID控制器,或者使用SAN存储时, O_DIRECT 可能会导致性能下降
#innodb_flush_method=O_DIRECT#innodb_file_format=Barracuda
#innodb_file_format_max=Barracuda
#innodb_strict_mode=1
#innodb_file_per_table=1# innodb重做日志保存目录
innodb_log_group_home_dir=/opt/data/mysql/redolog/# innodb回滚日志保存目录
innodb_undo_directory=/opt/data/mysql/undolog/# undo回滚段的数量,  至少大于等于35, 默认128
innodb_undo_logs=128# 用于设定创建的undo表空间的个数, 在mysql_install_db时初始化后, 就再也不能被改动了;
# 默认值为0, 表示不独立设置undo的tablespace, 默认记录到ibdata中; 否则, 则在undo目录下创建这么多个undo文件,
# 例如假定设置该值为4, 那么就会创建命名为undo001~undo004的undo tablespace文件, 每个文件的默认大小为10M
# 修改该值会导致Innodb无法完成初始化, 数据库无法启动
#innodb_undo_tablespaces=0# InnoDB存储引擎在刷新一个脏页时, 会检测该页所在区(extent)的所有页, 如果是脏页, 那么一起刷新.
# 这样做的好处是通过AIO可以将多个IO写操作合并为一个IO操作. 对于传统机械硬盘建议使用, 而对于固态硬盘可以关闭
#innodb_flush_neighbors=1# 日志文件的大小
innodb_log_file_size=4G# 事务在内存中的缓冲
innodb_log_buffer_size=16M# 控制是否使用, 使用几个独立purge线程(清除二进制日志)
innodb_purge_threads=4# mysql在5.6之前一直都是单列索引限制767, 起因是256×3-1. 这个3是字符最大占用空间(utf8).
# 在5.6以后, 开始支持4个字节的uutf8. 255×4>767, 于是增加了这个参数. 这个参数默认值是OFF. 当改为ON时, 允许列索引最大达到3072
innodb_large_prefix=1# InnoDB kernel并发最大的线程数.
# 1) 最少设置为(num_disks+num_cpus)*2
# 2) 可以通过设置成1000来禁止这个限制
innodb_thread_concurrency=64# 将死锁相关信息保存到MySQL 错误日志中
innodb_print_all_deadlocks=1# RDER BY 或者 GROUP BY 操作的buffer缓存大小
innodb_sort_buffer_size=64M########semi sync replication settings######### 指定mysql插件目录
#plugin_dir=/opt/data/mysql/lib/plugin# 指定载入哪些插件
#plugin_load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"# 控制主库上是否开启semisync
#loose_rpl_semi_sync_master_enabled=1# 控制备库是否开启semisync
#loose_rpl_semi_sync_slave_enabled=1# 单位毫秒, 防止半同步复制在没有收到确认的情况下, 发送堵塞. master在超时之前没有收到确认, 将恢复到异步复制, 继续执行半同步没有进行的操作
#loose_rpl_semi_sync_master_timeout=5000
[mysqld-5.7]# 转储每个bp instance LRU上最热的page的百分比. 通过设置该参数可以减少转储的page数
#innodb_buffer_pool_dump_pct=40# Page cleaner并未和buffer pool绑定, 其模型为一个协调线程 + 多个工作线程, 协调线程本身也是工作线程.
# 如果innodb_page_cleaners设置为8, 那么就是一个协调线程, 加7个工作线程
#innodb_page_cleaners=4# 开启在线回收(收缩)undo log日志文件
#innodb_undo_log_truncate=1# 当超过这个阀值(默认是1G), 会触发truncate回收(收缩)动作, truncate后空间缩小到10M
#innodb_max_undo_log_size=2G# 控制回收(收缩)undo log的频率
#innodb_purge_rseg_truncate_frequency=128# mysql在搜寻GTID时是如何迭代使用binlog文件的. 这个选项设置为真, 会提升mysql执行恢复的性能. 因为这样mysql-server启动和binlog日志清理更快
#binlog_gtid_simple_recovery=1# 该参数控制 error log、genera log等等记录日志的显示时间参数
log_timestamps=system# 这个神奇的参数5.7.6版本引入, 用于定义一个记录事务的算法, 这个算法使用hash标识来记录事务.
# 如果使用MGR, 那么这个hash值需要用于分布式冲突检测何处理.
# 在64位的系统, 官网建议设置该参数使用 XXHASH64 算法. 如果线上并没有使用该功能, 应该设为off
#transaction_writeet_extraction=MURMUR32#show_compatibility_56=on[client]default_character-set=utf8[mysql]default_character-set=utf8

17.重启 mysql 服务

systemctl restart mysqld#查看 binlog 日志状态
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
#查看 GTID 状态
mysql> show variables like "%gtid%";
+----------------------------------+-----------+
| Variable_name                    | Value     |
+----------------------------------+-----------+
| binlog_gtid_simple_recovery      | ON        |
| enforce_gtid_consistency         | ON        |
| gtid_executed_compression_period | 1000      |
| gtid_mode                        | ON        |
| gtid_next                        | AUTOMATIC |
| gtid_owned                       |           |
| gtid_purged                      |           |
| session_track_gtids              | OFF       |
+----------------------------------+-----------+
#查看服务器server_uuid
mysql> show global variables like '%uuid%';
+---------------+--------------------------------------+
| Variable_name | Value                                |
+---------------+--------------------------------------+
| server_uuid   | 01378bf6-2b35-11e8-98fe-00163e04ca22 |
+---------------+--------------------------------------+
1 row in set (0.00 sec)#查看服务器 server_id
mysql> show variables like '%server_id%';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| server_id      | 10    |
| server_id_bits | 32    |
+----------------+-------+
2 rows in set (0.01 sec)

18.在 slave 上配置 mysql 主从 基于日志复制

安装参考主数据库安装

19.创建日志目录

[root@mysql ~]#  mkdir -p /opt/data/mysql/log
[root@mysql ~]#  mkdir -p /opt/data/mysql/redolog/
[root@mysql ~]#  mkdir -p /opt/data/mysql/undolog/
#日志目录权限修改
[root@mysql ~]#  chown -R mysql:mysql /opt/data/mysql/log
[root@mysql ~]#  chown -R mysql:mysql /opt/data/mysql/redolog
[root@mysql ~]#  chown -R mysql:mysql /opt/data/mysql/undolog

20.修改 salve 配置文件

删除原有内容并复制以下内容到配置文件中

[mysqld]######## basic settings ######### 服务器 ID , 主从唯一标识
server_id=20# 监听端口
#port=3306# 运行用户
user=mysql# 监听IP地址, 如果是127.0.0.1, 表示仅本机访问
#bind_address=127.0.0.1# 数据修改是否自动提交, 为0不自动提交
autocommit=1# 服务器字符集 , utf8mb4为超字符集, 兼容UTF-8并可存储4字节的图片
character_set_server=utf8mb4# 禁用DNS主机名查找, 启用以后用内网地址向mysqlslap请求响应快一半
skip_name_resolve=1# 最大连接数
max_connections=1024# 主机连接错误次数等于max_connect_errors(默认10)时 , 再次尝试连接将被屏蔽. 可有效防止DDOS攻击
max_connect_errors=1000# 数据存储目录
datadir=/opt/data/mysql# socket方式运行文件存储路径
socket=/opt/data/mysql/mysql.sock# 进程PID文件
pid_file=/opt/data/mysql/mysqld.pid# 数据库事务隔离级别
# 1. READ-UNCOMMITTED(读取未提交内容)级别
# 2. READ-COMMITTED(读取提交内容)
# 3. REPEATABLE-READ(可重读)
# 4. SERIERLIZED(可串行化)
# 默认级别REPEATABLE-READ
transaction_isolation=READ-COMMITTEDexplicit_defaults_for_timestamp=1# join是ALL,index,rang或者Index_merge的时候使用的buffer
join_buffer_size=128M# 内部内存临时表的最大值
tmp_table_size=128M# 临时文件目录
tmpdir=/tmp# 最大接受的数据包大小
max_allowed_packet=16M# sql_mode 模式, 定义了你MySQL应该支持的sql语法, 对数据的校验等等, 限制一些所谓的不合法操作
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"# 服务器关闭交互式连接前等待活动的秒数
interactive_timeout=60# 服务器关闭非交互连接之前等待活动的秒数
wait_timeout=60# 读入缓冲区的大小
read_buffer_size=16M# 随机读缓冲区大小
read_rnd_buffer_size=32M# connection缓存
sort_buffer_size=32M######## log settings ######### 错误日志文件
log_error=/opt/data/mysql/mysqld.log# 是否开启慢查询日志收集, 1为启用, 0为禁用
slow_query_log=1# 慢查询日志文件
slow_query_log_file=/opt/data/mysql/log/slow.log# 记录未使用索引的语句
log_queries_not_using_indexes=1# 记录管理型慢SQL
log_slow_admin_statements=1# 记录 slave 产生的慢查询
log_slow_slave_statements=1# 每分钟记录到日志的未使用索引的语句数目, 超过这个值后只记录语句数量和花费的总时间
log_throttle_queries_not_using_indexes=10# 日志过期时间天数
expire_logs_days=90# binlog日志文件大小
max_binlog_size=100M# 记录慢查询超时时间, 默认为秒
long_query_time=3# 查询返回少于该参数指定行的SQL不被记录到慢查询日志
min_examined_row_limit=100######## master replication settings ######### binlog 日志文件
#log_bin=/opt/data/mysql/log/mysql-bin.log# binlog 索引文件
#log_bin_index=/opt/data/mysql/log/mysql-bin.index# sync_binlog=0, 当事务提交之后, MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘, 而让Filesystem自行决定什么时候来做同步, 或者cache满了之后才同步到磁盘
# sync_binlog=n, 当每进行n次事务提交之后, MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘
# MySQL中系统默认的设置是sync_binlog=0, 也就是不做任何强制性的磁盘刷新指令, 这时候的性能是最好的, 但是风险也是最大的. 因为一旦系统Crash, 在binlog_cache中的所有binlog信息都会被丢失. 而
# 当设置为"1"的时候, 是最安全但是性能损耗最大的设置. 因为当设置为1的时候, 即使系统Crash, 也最多丢失binlog_cache中未完成的一个事务, 对实际数据没有任何实质性影响.
# 从以往经验和相关测试来看, 对于高并发事务的系统来说, "sync_binlog"设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多
#sync_binlog=3# 启用 GTID 类型
#gtid_mode=on# 强制 GTID 一致性
#enforce_gtid_consistency=1# 主从一致性校验算法
#binlog_checksum=CRC32# slave更新是否记入日志, 在做双主架构时异常重要, 影响到双主架构是否能互相同步
#log_slave_updates=1# binlog日志格式
#binlog_format=row# 这个参数控制了当mysql启动或重启时, mysql在搜寻GTIDs时是如何迭代使用binlog文件的.  这个选项设置为真, 会提升mysql执行恢复的性能. 因为这样mysql-server启动和binlog日志清理更快
#binlog_gtid_simple_recovery=1# 跳过指定error no类型的错误, 设成all 跳过所有错误
#slave_skip_errors=ddl_exist_errors######## slave replication settings ######### binlog 日志文件
log_bin=/opt/data/mysql/log/mysql-bin.log# binlog 索引文件
log_bin_index=/opt/data/mysql/log/mysql-bin.index# sync_binlog=0, 当事务提交之后, MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘, 而让Filesystem自行决定什么时候来做同步, 或者cache满了之后才同步到磁盘
# sync_binlog=n, 当每进行n次事务提交之后, MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘
# MySQL中系统默认的设置是sync_binlog=0, 也就是不做任何强制性的磁盘刷新指令, 这时候的性能是最好的, 但是风险也是最大的. 因为一旦系统Crash, 在binlog_cache中的所有binlog信息都会被丢失. 而
# 当设置为"1"的时候, 是最安全但是性能损耗最大的设置. 因为当设置为1的时候, 即使系统Crash, 也最多丢失binlog_cache中未完成的一个事务, 对实际数据没有任何实质性影响.
# 从以往经验和相关测试来看, 对于高并发事务的系统来说, "sync_binlog"设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多
sync_binlog=3# 启用 GTID 类型
gtid_mode=on# 强制 GTID 一致性
enforce_gtid_consistency=1# binlog日志格式
binlog_format=row# 设置 slave 为只读 (仅限制普通用户,不限制超级用户)
read_only=1# slave 保存同步中继日志的位置
relay_log=/opt/data/mysql/log/relay.log# slave 同步中继日志索引文件
relay_log_index=/opt/data/mysql/log/relay-log-index# slave 节点保存 master 节点信息方式 , 设定为 file 会生成master.info 和 relay-log.info 2个文件 ; 设定为 table 时信息就会存在 mysql.master_slave_info 表中
master_info_repository=TABLE# 用于保存 slave 读取 relay log 的位置信息
relay_log_info_repository=TABLE# 当slave从库宕机后, 假如relay-log损坏了, 导致一部分中继日志没有处理, 则自动放弃所有未执行的relay-log, 并且重新从master上获取日志, 这样就保证了relay-log的完整性
relay_log_recovery=1# 这个参数控制了当mysql启动或重启时, mysql在搜寻GTIDs时是如何迭代使用binlog文件的.  这个选项设置为真, 会提升mysql执行恢复的性能. 因为这样mysql-server启动和binlog日志清理更快
binlog_gtid_simple_recovery=1# 跳过指定error no类型的错误, 设成all 跳过所有错误
slave_skip_errors=ddl_exist_errors# 在从库执行start slave的时候, 会将report-host和report-port(默认3306)发给主库, 主库记录在全局哈希结构变量 slave_list 中
# 如果想要连report-user和report-password也显示出来, 则需要主库配置参参数show-slave-auth-info
report_port=3306
report_host=172.16.0.167######## innodb settings ######### innodb每个数据页大小
innodb_page_size=16K# 缓存innodb表的索引、数据, 插入数据时的缓冲, 专用mysql服务器设置的大小:  操作系统内存的70%-80%最佳
innodb_buffer_pool_size=6G# 可以开启多个内存缓冲池, 把需要缓冲的数据hash到不同的缓冲池中, 这样可以并行的内存读写
innodb_buffer_pool_instances=8# 加载本地热数据到InnoDB缓存
innodb_buffer_pool_load_at_startup=1# 停止MySQL服务时, InnoDB将InnoDB缓冲池中的热数据保存到本地硬盘
innodb_buffer_pool_dump_at_shutdown=1# page cleaner线程每次刷脏页的数量
innodb_lru_scan_depth=2000# 事务等待获取资源等待的最长时间, 单位是秒
innodb_lock_wait_timeout=5# 这两个设置会影响InnoDB每秒在后台执行多少操作. 大多数写IO(除了写InnoDB日志)是后台操作的.
# 如果深度了解硬件性能(如每秒可以执行多少次IO操作),则使用这些功能是很可取的,而不是让它闲着
#innodb_io_capacity=4000
#innodb_io_capacity_max=8000# 默认值为 fdatasync.
# 如果使用 硬件RAID磁盘控制器, 可能需要设置为 O_DIRECT. 这在读取InnoDB缓冲池时可防止双缓冲(double buffering)效应, 否则会在文件系统缓存与InnoDB缓存间形成2个副本(copy).
# 如果不使用硬件RAID控制器,或者使用SAN存储时, O_DIRECT 可能会导致性能下降
#innodb_flush_method=O_DIRECT#innodb_file_format=Barracuda
#innodb_file_format_max=Barracuda
#innodb_strict_mode=1
#innodb_file_per_table=1# innodb重做日志保存目录
innodb_log_group_home_dir=/opt/data/mysql/redolog/# innodb回滚日志保存目录
innodb_undo_directory=/opt/data/mysql/undolog/# undo回滚段的数量,  至少大于等于35, 默认128
innodb_undo_logs=128# 用于设定创建的undo表空间的个数, 在mysql_install_db时初始化后, 就再也不能被改动了;
# 默认值为0, 表示不独立设置undo的tablespace, 默认记录到ibdata中; 否则, 则在undo目录下创建这么多个undo文件,
# 例如假定设置该值为4, 那么就会创建命名为undo001~undo004的undo tablespace文件, 每个文件的默认大小为10M
# 修改该值会导致Innodb无法完成初始化, 数据库无法启动
#innodb_undo_tablespaces=0# InnoDB存储引擎在刷新一个脏页时, 会检测该页所在区(extent)的所有页, 如果是脏页, 那么一起刷新.
# 这样做的好处是通过AIO可以将多个IO写操作合并为一个IO操作. 对于传统机械硬盘建议使用, 而对于固态硬盘可以关闭
#innodb_flush_neighbors=1# 日志文件的大小
innodb_log_file_size=4G# 事务在内存中的缓冲
innodb_log_buffer_size=16M# 控制是否使用, 使用几个独立purge线程(清除二进制日志)
innodb_purge_threads=4# mysql在5.6之前一直都是单列索引限制767, 起因是256×3-1. 这个3是字符最大占用空间(utf8).
# 在5.6以后, 开始支持4个字节的uutf8. 255×4>767, 于是增加了这个参数. 这个参数默认值是OFF. 当改为ON时, 允许列索引最大达到3072
innodb_large_prefix=1# InnoDB kernel并发最大的线程数.
# 1) 最少设置为(num_disks+num_cpus)*2
# 2) 可以通过设置成1000来禁止这个限制
innodb_thread_concurrency=64# 将死锁相关信息保存到MySQL 错误日志中
innodb_print_all_deadlocks=1# RDER BY 或者 GROUP BY 操作的buffer缓存大小
innodb_sort_buffer_size=64M########semi sync replication settings######### 指定mysql插件目录
#plugin_dir=/opt/data/mysql/lib/plugin# 指定载入哪些插件
#plugin_load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"# 控制主库上是否开启semisync
#loose_rpl_semi_sync_master_enabled=1# 控制备库是否开启semisync
#loose_rpl_semi_sync_slave_enabled=1# 单位毫秒, 防止半同步复制在没有收到确认的情况下, 发送堵塞. master在超时之前没有收到确认, 将恢复到异步复制, 继续执行半同步没有进行的操作
#loose_rpl_semi_sync_master_timeout=5000
[mysqld-5.7]# 转储每个bp instance LRU上最热的page的百分比. 通过设置该参数可以减少转储的page数
#innodb_buffer_pool_dump_pct=40# Page cleaner并未和buffer pool绑定, 其模型为一个协调线程 + 多个工作线程, 协调线程本身也是工作线程.
# 如果innodb_page_cleaners设置为8, 那么就是一个协调线程, 加7个工作线程
#innodb_page_cleaners=4# 开启在线回收(收缩)undo log日志文件
#innodb_undo_log_truncate=1# 当超过这个阀值(默认是1G), 会触发truncate回收(收缩)动作, truncate后空间缩小到10M
#innodb_max_undo_log_size=2G# 控制回收(收缩)undo log的频率
#innodb_purge_rseg_truncate_frequency=128# mysql在搜寻GTID时是如何迭代使用binlog文件的. 这个选项设置为真, 会提升mysql执行恢复的性能. 因为这样mysql-server启动和binlog日志清理更快
#binlog_gtid_simple_recovery=1# 该参数控制 error log、genera log等等记录日志的显示时间参数
log_timestamps=system# 这个神奇的参数5.7.6版本引入, 用于定义一个记录事务的算法, 这个算法使用hash标识来记录事务.
# 如果使用MGR, 那么这个hash值需要用于分布式冲突检测何处理.
# 在64位的系统, 官网建议设置该参数使用 XXHASH64 算法. 如果线上并没有使用该功能, 应该设为off
#transaction_write_set_extraction=MURMUR32#show_compatibility_56=on[client]default_character-set=utf8[mysql]default_character-set=utf8

21.重启 mysql 服务

[root@mysql ~]# systemctl restart mysqld
#查看 binlog 日志状态
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
#查看 GTID 状态
mysql> show variables like "%gtid%";
+----------------------------------+-----------+
| Variable_name                    | Value     |
+----------------------------------+-----------+
| binlog_gtid_simple_recovery      | ON        |
| enforce_gtid_consistency         | ON        |
| gtid_executed_compression_period | 1000      |
| gtid_mode                        | ON        |
| gtid_next                        | AUTOMATIC |
| gtid_owned                       |           |
| gtid_purged                      |           |
| session_track_gtids              | OFF       |
+----------------------------------+-----------+
#查看服务器server_uuid
mysql> show global variables like '%uuid%';
+---------------+--------------------------------------+
| Variable_name | Value                                |
+---------------+--------------------------------------+
| server_uuid   | 01378bf6-2b35-11e8-98fe-00163e04ca22 |
+---------------+--------------------------------------+
1 row in set (0.00 sec)
#查看服务器 server_id
mysql> show variables like '%server_id%';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| server_id      | 20    |
| server_id_bits | 32    |
+----------------+-------+
2 rows in set (0.01 sec)
#配置 slave 连接到 master
mysql> CHANGE MASTER TO MASTER_HOST='10.10.220.40',MASTER_USER='dt_sync',MASTER_PASSWORD='xxxxxxx',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=0;
Query OK, 0 rows affected, 2 warnings (0.04 sec)
#启动slave
mysql> START SLAVE;
Query OK, 0 rows affected (0.01 sec)
#查看 slave 状态 确认 Slave_IO_Running 和 Slave_SQL_Running 两个参数都为 Yes 状态
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 10.10.220.40Master_User: dt_syncMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000001Read_Master_Log_Pos: 154Relay_Log_File: relay.000002Relay_Log_Pos: 367Relay_Master_Log_File: mysql-bin.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 154Relay_Log_Space: 564Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id: 10Master_UUID: 01378bf6-2b35-11e8-98fe-00163e04ca22Master_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set:Executed_Gtid_Set:Auto_Position: 0Replicate_Rewrite_DB:Channel_Name:Master_TLS_Version:
1 row in set (0.00 sec)

22.主从测试

#创建测试数据库 RUNOOB 在 master
mysql> CREATE DATABASE IF NOT EXISTS RUNOOB DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| RUNOOB             |
| log                |
| mysql              |
| performance_schema |
| redolog            |
| sys                |
| undolog            |
+--------------------+
8 rows in set (0.00 sec)
#切换到 RUNOOB
mysql> use RUNOOB
Database changed
在 RUNOOB 库中创建测试表 runoob_tbl
mysql> CREATE TABLE IF NOT EXISTS `runoob_tbl`(->    `runoob_id` INT UNSIGNED AUTO_INCREMENT,->    `runoob_title` VARCHAR(100) NOT NULL,->    `runoob_author` VARCHAR(40) NOT NULL,->    `submission_date` DATE,->    PRIMARY KEY ( `runoob_id` )-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)mysql> show tables-> ;
+------------------+
| Tables_in_RUNOOB |
+------------------+
| runoob_tbl       |
+------------------+
1 row in set (0.00 sec)
#在 runoob_tbl 表中插入一条数据
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)mysql> INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("python", "人生苦短吾爱python", NOW());
Query OK, 1 row affected, 1 warning (0.00 sec)mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)mysql>
mysql> select * from runoob_tbl;
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
|         1 | python     | 人生苦短吾爱python      | 2018-03-19      |
+-----------+--------------+---------------+-----------------+
1 row in set (0.00 sec)
#查看 binlog 日志状态
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                        |
+------------------+----------+--------------+------------------+------------------------------------------+
| mysql-bin.000001 |     2187 |              |                  | 01378bf6-2b35-11e8-98fe-00163e04ca22:1-7 |
+------------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)
#查看 slave 是否已经复制数据
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| RUNOOB             |
| log                |
| mysql              |
| performance_schema |
| redolog            |
| sys                |
| undolog            |
+--------------------+
8 rows in set (0.00 sec)mysql>
mysql> use RUNOOB;
Database changed
mysql>
mysql> show tables;
+------------------+
| Tables_in_RUNOOB |
+------------------+
| runoob_tbl       |
+------------------+
1 row in set (0.00 sec)mysql>
mysql> select * from runoob_tbl;
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
|         2 | python     | 人生苦短吾爱python      | 2018-03-19      |
+-----------+--------------+---------------+-----------------+
1 row in set (0.00 sec)mysql>
mysql> SHOW SLAVE STATUS \G
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
......Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set: 01378bf6-2b35-11e8-98fe-00163e04ca22:1-7Executed_Gtid_Set: 01378bf6-2b35-11e8-98fe-00163e04ca22:1-7Auto_Position: 0
......
1 row in set (0.00 sec)

参考:https://cloud.tencent.com/developer/article/1155179

生产环境centos7 安装mysql 5.7.35相关推荐

  1. linux centos7 mysql_Linux centos7环境下安装MySQL的步骤详解

    Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...

  2. 搭建 K8S 环境:Centos7安装生产环境可用的K8S集群图文教程指南

    搭建 K8S 环境:Centos7安装生产环境可用的K8S集群图文教程指南 一. K8S 简介 二. K8S 学习的几大拦路虎 2.1 K8S 安装对硬件要求比较高 2.2. K8S 对使用者来说要求 ...

  3. 在Mac OS环境下安装MySQL服务

    在Mac OS环境下安装MySQL服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我之前介绍过window环境下安装mysql服务,以及在Linux环境下安装mysql服务,今 ...

  4. linux 查看mysql安装目录_Linux环境下安装MySQL数据库示例教程

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 Linux环境对大多数SQL初学者还是比较陌生,今天给大家演示一下如何在Linux环境 ...

  5. Linux环境下安装MySQL(源码安装)

    Linux环境下安装MySQL(源码安装) 1.事先从官网/国内镜像站点中下载源码安装包,上传至服务器: 2.安装开发工具和开发包(从5.5开始使用cmake编译) 3.创建用户和组 4.编译安装My ...

  6. CentOS7安装MySQL数据库、设置防火墙

    CentOS7安装MySQL数据库步骤 MySQL数据库安装 下载wget命令 删除已安装的MySQL服务 安装MySQL安装包 可能遇到的问题 问题一 问题二 MySQL数据库配置 获取临时密码 · ...

  7. centos7 安装mysql php_Centos7安装mysql与php的方法

    本文主要和大家分享Centos7安装mysql与php的方法,希望能帮助到大家. 相关mysql视频教程推荐:<mysql教程> 官网下载安装mysql-server 依次使用下面三个命令 ...

  8. centos7安装mysql缺失依赖_CentOS7安装mysql5.7不成功,解决依赖包之后还是无法安装成功...

    [root@xg79 ~]# yum -y installmysql-community-server ............. Error: Package:mysql-community-ser ...

  9. centos7 安装mysql php,Centos7安装mysql与php的方法

    本文主要和大家分享Centos7安装mysql与php的方法,希望能帮助到大家. 相关mysql视频教程推荐:<mysql教程> 官网下载安装mysql-server 依次使用下面三个命令 ...

最新文章

  1. 约瑟夫环问题的两种解法(详解)
  2. C# 动态执行批处理命令
  3. 经典C语言程序100例之五六
  4. “大数据杀熟”成网络热词,科技公司信任危机到来?
  5. Jerry入职SAP成都研究院14周年纪念日
  6. 6.3 API : XGBoost
  7. 显示器、显卡的接口类型
  8. 金山打字通——绿色安全无捆绑下载
  9. SDOI2019 R2退役记
  10. 飞腾桌面腾锐D2000 核心板
  11. btwdins.exe
  12. EXCEL基础:数据透视表(按年龄分组统计与统计各部门的工资情况)
  13. 华为荣耀系列移动终端产品分析和演进研究
  14. 2020年中国研究生数学建模竞赛C题
  15. 日语初级语法复习整合 Day 11 - Day 15 Summary
  16. linux kernel --- checksum相关ip_summed和feature字段解释
  17. 总结一下,小灰的2020年!
  18. 迅为4418开发板Linux系统修改和固定MAC地址
  19. KMS服务搭建及客户端命令
  20. 计算机专业简历的自我评价,计算机网络专业简历的自我评价

热门文章

  1. linux下新建用户并给用户授权
  2. 【C++】一个简单的模拟实现鼠标脚本精灵
  3. 嵌入式处理器分类与现状
  4. Tomcat的server启动
  5. idea插件开发-环境搭建
  6. 单枪匹马的背锅侠,终于不再是一个人的军团了
  7. MySQL-5.6版本GTID的主从复制
  8. Sweetviz:让你只需三行代码实现Python探索性数据分析
  9. excel 表中几个关联汇总函数
  10. composer安装laravel指定版本