生产中设置MySQL主从复制架构
**前提环境:**主服务器非新建时,主服务器运行一段时间后,新增从节点服务器
准备环境:
公司中一直运行着的老服务器
下载安装MySQL数据库
启动服务器
#导入一些数据,充当数据库之前的数据
[root@centos8 ~]#rz -E
rz waiting to receive.
[root@centos8 ~]#ls
hellodb_innodb.sql
[root@centos8 ~]#mysql < hellodb_innodb.sql
更改配置文件:
[root@centos8 ~]#vim /etc/my.cnf.d/mysql-server.cnf
添加以下内容:
创建二进制日志所需目录文件,并修改权限
执行这一步之前要确保SELINUX是关闭了的,否则重启的时候会起不来
完全备份:如果生产中有一些其他的功能可以再添加一些选项;生产中建议备份的时候压缩一下(生产中文件一般的比较大)
创建用户:
把完全备份的文件复制到从节点
公司的一台新的干净的机器;用来和老机器搭建主从复制架构
下载安装MySQL数据库
更改配置文件
[root@centos8 ~]#vim /etc/my.cnf.d/mysql-server.cnf
添加一下内容
重启服务
#mysql> help change master to; 查询出来下面的内容示例,用于下面配置文件的更改
CHANGE MASTER TO
MASTER_HOST='master2.example.com',
MASTER_USER='replication',
MASTER_PASSWORD='password',
MASTER_PORT=3306,
MASTER_LOG_FILE='master2-bin.001',
MASTER_LOG_POS=4,
MASTER_CONNECT_RETRY=10;
更改以下配置文件为以下内容
[root@centos8 ~]#vim /data/all.sql
还原主节点备份的数据
启动复制线程
查看状态
把二进制日志启用
mysql>set sql_log_bin=1;
步骤汇总
主节点
#修改master主节点的配置
[root@centos8 ~]#vim /etc/my.cnf
[mysqld]
server-id=8
log-bin=/data/mysql/logbin/mysql-bin
[root@centos8 ~]#systemctl restart mysqld
#完全备份
[root@centos8 ~]#mysqldump -A -F --master-data=1 --single-transaction >
/data/all.sql
#创建复制用户并授权
mysql>create user repluser@"10.0.0.%" identified by "123456"
mysql>grant replication slave on *.* to repluser@"10.0.0.%"";
#将备份复制到从节点
[root@centos8 ~]#scp /data/all.sql 从节点:/data
#配置从节点
[root@centos8 ~]#vim /etc/my.cnf
[mysqld]
server-id=18
read-only
[root@centos8 ~]#systemctl restart mysqld
#从节点修改备份文件
[root@centos8 ~]#vim /data/all.sql
CHANGE MASTER TO
MASTER_HOST='主节点',
MASTER_USER='repluser',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=156;
#从节点还原备份
mysql> set sql_log_bin=0;
mysql> source /data/all.sql;
mysql>set sql_log_bin=1;
#从节点开始复制
mysql> start slave;