主从复制应用场景:(1):数据分布 (2):负载均衡 (3):备份 (4):高可用和容错
主服务器:
(1)进入:vi /etc/my.cnf
(2)server_id:服务器的唯一标识,实操建议使用IP
log-bin:开启主服务器的二进制日志,复制功能就是基于二进制日志
log-bin = mysql-bin
server_id = 74#ID随便起,前提主从服务器不同相同
binlog-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
binlog-ignore-db=不需要复制的数据库苦命,如果复制多个数据库,重复设置这个选项即可
重启mysql服务器:service mysqld restart
(3)主服务器增加完成复制功能的用户%:所有 从服务器IP地址:只能此IP可以访问
grant replication slave on *.* to '服务器用户名'@'%' identified by '密码';
(4)刷新权限
flush privileges;
(5)从服务器连接登录:mysql -h主服务器IP -u用户名 -p密码;
(6)主服务器当前的状态:show master status\G;----获得File:localhost-bin.000001 (二进制文件地址) Position:120(文件内部指针)
从服务器配置:
(1)vi /etc/my.cnf
(2)server_id = 76, 唯一的标识
(3)重启mysql服务器:service mysqld restart
replicate-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
replicate-ignore-db=不需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
(4)从服务器设置需要复制的主服务器信息
change master to master_host="主服务器IP",master_user="用户名",master_password="密码",master_log_file='mx03-bin.000001',master_log_pos=27557852;
(5)启动从服务器上的复制线程:start slave;
(6)检测复制状态(从服务器状态):show slave status\G;
会得到类似下面的列表:两个yes代表正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
基本原理:
主服务器负责生成二进制日志
从服务器负责读取主服务器的二进制日志,以及将其执行。
主服务器存在应用数据的话,在主从复制时,需要做一下处理:
(1)主数据库锁表操作,不让数据在进行写入操作。------FLUSH TABLES WITH READ LOCK;
(2)查看数据库状态 ------show master status;
(3)将主服务器的数据文件拷贝赋值到从服务器
(4)取消主数据库锁定 -----UNLOCK TABLES;
主服务器:
(1)进入:vi /etc/my.cnf
(2)server_id:服务器的唯一标识,实操建议使用IP
log-bin:开启主服务器的二进制日志,复制功能就是基于二进制日志
log-bin = mysql-bin
server_id = 74#ID随便起,前提主从服务器不同相同
binlog-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
binlog-ignore-db=不需要复制的数据库苦命,如果复制多个数据库,重复设置这个选项即可
重启mysql服务器:service mysqld restart
(3)主服务器增加完成复制功能的用户%:所有 从服务器IP地址:只能此IP可以访问
grant replication slave on *.* to '服务器用户名'@'%' identified by '密码';
(4)刷新权限
flush privileges;
(5)从服务器连接登录:mysql -h主服务器IP -u用户名 -p密码;
(6)主服务器当前的状态:show master status\G;----获得File:localhost-bin.000001 (二进制文件地址) Position:120(文件内部指针)
从服务器配置:
(1)vi /etc/my.cnf
(2)server_id = 76, 唯一的标识
(3)重启mysql服务器:service mysqld restart
replicate-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
replicate-ignore-db=不需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
(4)从服务器设置需要复制的主服务器信息
change master to master_host="主服务器IP",master_user="用户名",master_password="密码",master_log_file='mx03-bin.000001',master_log_pos=27557852;
(5)启动从服务器上的复制线程:start slave;
(6)检测复制状态(从服务器状态):show slave status\G;
会得到类似下面的列表:两个yes代表正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
基本原理:
主服务器负责生成二进制日志
从服务器负责读取主服务器的二进制日志,以及将其执行。
主服务器存在应用数据的话,在主从复制时,需要做一下处理:
(1)主数据库锁表操作,不让数据在进行写入操作。------FLUSH TABLES WITH READ LOCK;
(2)查看数据库状态 ------show master status;
(3)将主服务器的数据文件拷贝赋值到从服务器
(4)取消主数据库锁定 -----UNLOCK TABLES;
1032

被折叠的 条评论
为什么被折叠?



