mysql5.7 数据库主从同步实现,实操环境:linux centos7
一,安装mysql5.7
1 配置MySql5.7的 Yum仓库配置
yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2 安装mysql5.7
yum install -y mysql-community-server
3 启动mysql
systemctl start mysqld
4 设置开机启动
systemctl enable mysqld
5 查看安装时生成的root 密码
grep 'temporary password' /var/log/mysqld.log
6 验证安装,访问mysql
mysql -u root -p
二 配置主库
1 修改主库配置文件
在主数据库上进行一些配置更改,以允许从数据库连接并复制数据。编辑主数据库的配置文件,
centos 系统的mysql配置文件默认路径:/etc/my.cnf
[mysqld]#同步ID,唯一即可,不要与从库一样
server-id=1log-bin=mysql-bin#批定同步的数据库名称
binlog-do-db=dbname#排除不同步的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys#设置保留文件时间
expire_logs_days=3
说明:
server-id
: 主服务器的唯一标识符,每个服务器必须有一个唯一的ID。log-bin
: 启用二进制日志,这是主从复制的数据。binlog-do-db
: 指定要同步复制的数据库名称。binlog
-ignore-db:排除同步的数据库。- exprie_logs_days:保存同步数据的时间,单位为天,这个建议根据业务和磁盘占用大小设置
2 重启生效
重启从数据库使配置更改生效。
3 给从库配置账号
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
说明:在主数据库中创建一个用户,该用户将被用于连接主数据库复制数据到从库。
三 配置从库
1 从库配置文件
[mysqld]
server_id=10
replicate-do-db=kyc#不要同步的表
replicate-ignore-table=dbname.table_name
replicate-ignore-table=dbname.xxx_%#可用于忽略错误sql数量,处理异常情况下可能会用到
slave-skip-errors=10
说明
server-id
: 从服务器的唯一标识符,每个服务器必须有一个唯一的ID。- replicate-do-db:同步的数据库名称。
- replicate-ignore-table:根据业务需求可以排除不同步的表。
- slave-skip-errors:跳过执行时错误的sql数量(遇到错误的sql同步会停止)。
2 重启生效
重启从数据库使配置更改生效。
四 执行同步
1 在从库操作执行连接主库
CHANGE MASTER TOMASTER_HOST='master_host',MASTER_USER='replication_user',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.xxxxxx',MASTER_LOG_POS=xxx;
MASTER_HOST
: 主数据库的IP地址。MASTER_USER
: 账户。MASTER_PASSWORD
:账户的密码。MASTER_LOG_FILE
和MASTER_LOG_POS
: 这些值从主数据库的SHOW MASTER STATUS
命令中获取。
2 在从库操作启动同步
START SLAVE;
3 查看mysql主从同步状态
SHOW SLAVE STATUS