CentOS7+MySQL5.6配置主从
一、安装环境
操作系统:CentOS-7-x86_64-Minimal-1810.iso
安装来源:mysql57-community-release-el7-10.noarch.rpm
数据库版本:mysql57-community-release-el7-10.noarch
数据库地址:
192.168.176.218(主)
192.168.176.219(从)
首先保证3306端口的可用,或者关闭防火墙,两台服务器可以互相ping通过
准备工作:
两台数据库先进行手动数据同步,已完成请略过。
- 主库导出SQL脚本
mysqldump -uroot -pmysql --all-databases --lock-all-tables > ~/master_db.sql
# 说明
-u :用户名
-p :示密码
--all-databases :导出所有数据库
--lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改
~/master_db.sql :导出的备份数据(sql文件)位置,可自己指定
- 从库执行SQL脚本进行还原
mysql –uroot –pmysql < master_db.sql
二、Master的配置
1、修改MySQL配置文件
[root@localhost ~]# vim /etc/my.cnf
2、编辑后如下:
[mysqld]
#开启二进制日志
log-bin=mysql-bin
#标识唯一id(必须),一般使用ip最后位
server-id=2
#不同步的数据库,可设置多个(可以不设置)
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
#指定需要同步的数据库(和slave是相互匹配的),可以设置多个(可以不设置)
binlog-do-db=test
3、 添加日志存储方式和规则(选填)
#设置存储模式不设置默认
binlog_format=MIXED
#日志清理时间
expire_logs_days=7
#日志大小
max_binlog_size=100m
#缓存大小
binlog_cache_size=4m
#最大缓存大小
max_binlog_cache_size=521m
4、重启MySQL
systemctl restart mysqld.service
或者:
service mysqld restart
5、登录MySQL主库,设置允许从库获得主库日志
#给从库放权限
#创建用户
mysql>GRANT FILE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave123';
#修改用户权限
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave123';
#刷新权限
mysql>FLUSH PRIVILEGES;
6、查看主库信息
mysql> show master status;
+------------------+----------+--------------+----------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+----------------------------------+-------------------+
| mysql-bin.000001 | 1296 | ufind_db | information_schema,cluster,mysql | |
+------------------+----------+--------------+----------------------------------+-------------------+
1 row in set (0.00 sec)
mysql>
注:如果执行这个步骤始终为Empty set(0.00 sec),那说明前面的my.cnf没配置对
三、Slave的配置
1、修改从库配置,编辑后如下:
server-id=3
#开启二进制日志(可以不配置)
log-bin=mysql-bin
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
#与主库配置一直
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
2、登录MySQL从库,设置连接主库配置,并且开启同步
#同步连接配置
mysql> change master to master_host='192.168.176.218', master_user='slave', master_password='slave123',master_log_file='mysql-bin.000001', master_log_pos=1296;
#开启同步
mysql> start slave
#关闭同步
#mysql> stop slave
3、查看从库同步状态信息
mysql> show slave status \G;
#确认以下信息,两个都为YES则表示设置同步成功
Slave_IO_Running: Yes //显示yes为成功
Slave_SQL_Running: Yes //显示yes为成功,如果为no,一般为没有启动master
四、测试同步
- 测试同步可以通过新增\修改数据库、表、视图等确认
- 也可以通过对表数据的操作的变化来确认
更多干货、原创地址:http://www.osheep.cn/