? ?mysql5.7 数据库主从同步实现,实操环境:linux centos7?
yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum install -y mysql-community-server
systemctl start mysqld
systemctl enable mysqld
grep 'temporary password' /var/log/mysqld.log
mysql -u root -p
? ??在主数据库上进行一些配置更改,以允许从数据库连接并复制数据。编辑主数据库的配置文件,
? ? centos 系统的mysql配置文件默认路径:/etc/my.cnf
[mysqld]
#同步ID,唯一即可,不要与从库一样
server-id=1
log-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:排除同步的数据库。? ? ? 重启从数据库使配置更改生效。?
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
说明:在主数据库中创建一个用户,该用户将被用于连接主数据库复制数据到从库。?
[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。? ?重启从数据库使配置更改生效。?
CHANGE MASTER TO
MASTER_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
命令中获取。START SLAVE;
SHOW SLAVE STATUS
?