情况1:MASTER和salve都是新库的情况
1.1 master的my.CNF文件
vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin
server-id=1111
修改之后保存,并重启服务
1.2 sal replive的my.CNF文件
vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin
server-id=2222
修改之后保存,并重启服务
保证slave和master的server的ID不一样
1.3创建用户用于传输副本
这个用户可以了解主备机器,需要有replication的权限
用mysql客服端连接到master主节点,创建用户repl并授予权限
MySQL>create user repl identified by '123456';
mysql>grant replication slave on *.* to repl;
1.4获取master上binary log的坐标(检查点)
选中这个坐标,相当于检查点,在这个检查点之后的数据变化都会写到binary log文件里面,
而这个检查点之前的数据不会写到bin log文件里面。会被忽略。
注意:在获取检查点的必须要停止所有在执行的SQL语句,并将缓存写人到磁盘
1 :打开master节点上,执行flush tables with read lock 语句来将所有的表缓存写到磁盘并阻塞随后的
写人操作
MySQL>flush tables with read lock;
2: 执行show master status 语句来确定当前的bin log文件名和检查点的位置
MySQL> show master status;
并记录相关数据,mysql-bin.00011112 position=154等等信息
3:得到bin log的检查点后,可以将表解锁
MySQL>unlock tables;
1.5 在备节点slave中配置master的信息
连接到slave,执行change master to 命令来告诉slave如何进行连接到master,并找到bin log文件,这里假设主节点的
IP为10.63.62.175,。
MySQL> change master to master_host = '10.63.62.175',master_user = 'repl',master_password ='123456',
master_log_file ='mysql-bin.000012', master_log_pos=154;
1.6开启SLAVE线程(备)
配置好change master to 后,replication的任务还没有开始远程连接。需要在备机器slave中执行start slave来开启。
MySQL》start slave;
用如下的命令查看replication的状态
MySQL》show slave status \G;
如果在主库中创建一个新的数据库,然后在备库中看是否存在,如果存在,说明主备搭建好了。
-----------------------------------------------------------------------------------
第二中情况是master库已经存在数据的情况
如果master库中存在数据,就需要mysqldump命令创建一份快照,并将快照导入到slave库中。
1.1 master的my.CNF文件
vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin
server-id=1111
修改之后保存,并重启服务
1.2 sal replive的my.CNF文件
vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin
server-id=2222
修改之后保存,并重启服务
保证slave和master的server的ID不一样
1.3创建用户用于传输副本
这个用户可以了解主备机器,需要有replication的权限
用mysql客服端连接到master主节点,创建用户repl并授予权限
MySQL>create user repl identified by '123456';
mysql>grant replication slave on *.* to repl;
1.4获取master上binary log的坐标(检查点)
选中这个坐标,相当于检查点,在这个检查点之后的数据变化都会写到binary log文件里面,
而这个检查点之前的数据不会写到bin log文件里面。会被忽略。
注意:在获取检查点的必须要停止所有在执行的SQL语句,并将缓存写人到磁盘
1 :打开master节点上,执行flush tables with read lock 语句来将所有的表缓存写到磁盘并阻塞随后的
写人操作
MySQL>flush tables with read lock;
2: 执行show master status 语句来确定当前的bin log文件名和检查点的位置
MySQL> show master status;
并记录相关数据,mysql-bin.00011112 position=154等等信息
3:用MySQLdump创建MySQL的备份
shell>mysqldump --all-databases --lock-all-tables > dbdump.db
4:得到bin log的检查点后,可以将表解锁
MySQL>unlock tables;
2.1将创建的备份导入到slave备库中
2.1启动slave库的MySQL服务,添加--skip-slave-start参数来确保不会启动replication同步
SHELL>mysql-safe --skip-slave-start &;
2.2导入dump文件
shell> mysql < fulldb.dump
2.3去掉--skip-slave-start参数并重启slave服务
mysql>shutdown;
shell> mysqld-safe &;
2.4 在slave中配置master的信息
MySQL> change master to master_host = '10.63.62.175',master_user = 'repl',master_password ='123456',
master_log_file ='mysql-bin.000012', master_log_pos=154;
2.5 开启SLAVE线程(备)
配置好change master to 后,replication的任务还没有开始远程连接。需要在备机器slave中执行start slave来开启。
MySQL》start slave;
用如下的命令查看replication的状态
MySQL》show slave status \G;
如果在主库中创建一个新的数据库,然后在备库中看是否存在,如果存在,说明主备搭建好了。
1.1 master的my.CNF文件
vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin
server-id=1111
修改之后保存,并重启服务
1.2 sal replive的my.CNF文件
vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin
server-id=2222
修改之后保存,并重启服务
保证slave和master的server的ID不一样
1.3创建用户用于传输副本
这个用户可以了解主备机器,需要有replication的权限
用mysql客服端连接到master主节点,创建用户repl并授予权限
MySQL>create user repl identified by '123456';
mysql>grant replication slave on *.* to repl;
1.4获取master上binary log的坐标(检查点)
选中这个坐标,相当于检查点,在这个检查点之后的数据变化都会写到binary log文件里面,
而这个检查点之前的数据不会写到bin log文件里面。会被忽略。
注意:在获取检查点的必须要停止所有在执行的SQL语句,并将缓存写人到磁盘
1 :打开master节点上,执行flush tables with read lock 语句来将所有的表缓存写到磁盘并阻塞随后的
写人操作
MySQL>flush tables with read lock;
2: 执行show master status 语句来确定当前的bin log文件名和检查点的位置
MySQL> show master status;
并记录相关数据,mysql-bin.00011112 position=154等等信息
3:得到bin log的检查点后,可以将表解锁
MySQL>unlock tables;
1.5 在备节点slave中配置master的信息
连接到slave,执行change master to 命令来告诉slave如何进行连接到master,并找到bin log文件,这里假设主节点的
IP为10.63.62.175,。
MySQL> change master to master_host = '10.63.62.175',master_user = 'repl',master_password ='123456',
master_log_file ='mysql-bin.000012', master_log_pos=154;
1.6开启SLAVE线程(备)
配置好change master to 后,replication的任务还没有开始远程连接。需要在备机器slave中执行start slave来开启。
MySQL》start slave;
用如下的命令查看replication的状态
MySQL》show slave status \G;
如果在主库中创建一个新的数据库,然后在备库中看是否存在,如果存在,说明主备搭建好了。
-----------------------------------------------------------------------------------
第二中情况是master库已经存在数据的情况
如果master库中存在数据,就需要mysqldump命令创建一份快照,并将快照导入到slave库中。
1.1 master的my.CNF文件
vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin
server-id=1111
修改之后保存,并重启服务
1.2 sal replive的my.CNF文件
vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin
server-id=2222
修改之后保存,并重启服务
保证slave和master的server的ID不一样
1.3创建用户用于传输副本
这个用户可以了解主备机器,需要有replication的权限
用mysql客服端连接到master主节点,创建用户repl并授予权限
MySQL>create user repl identified by '123456';
mysql>grant replication slave on *.* to repl;
1.4获取master上binary log的坐标(检查点)
选中这个坐标,相当于检查点,在这个检查点之后的数据变化都会写到binary log文件里面,
而这个检查点之前的数据不会写到bin log文件里面。会被忽略。
注意:在获取检查点的必须要停止所有在执行的SQL语句,并将缓存写人到磁盘
1 :打开master节点上,执行flush tables with read lock 语句来将所有的表缓存写到磁盘并阻塞随后的
写人操作
MySQL>flush tables with read lock;
2: 执行show master status 语句来确定当前的bin log文件名和检查点的位置
MySQL> show master status;
并记录相关数据,mysql-bin.00011112 position=154等等信息
3:用MySQLdump创建MySQL的备份
shell>mysqldump --all-databases --lock-all-tables > dbdump.db
4:得到bin log的检查点后,可以将表解锁
MySQL>unlock tables;
2.1将创建的备份导入到slave备库中
2.1启动slave库的MySQL服务,添加--skip-slave-start参数来确保不会启动replication同步
SHELL>mysql-safe --skip-slave-start &;
2.2导入dump文件
shell> mysql < fulldb.dump
2.3去掉--skip-slave-start参数并重启slave服务
mysql>shutdown;
shell> mysqld-safe &;
2.4 在slave中配置master的信息
MySQL> change master to master_host = '10.63.62.175',master_user = 'repl',master_password ='123456',
master_log_file ='mysql-bin.000012', master_log_pos=154;
2.5 开启SLAVE线程(备)
配置好change master to 后,replication的任务还没有开始远程连接。需要在备机器slave中执行start slave来开启。
MySQL》start slave;
用如下的命令查看replication的状态
MySQL》show slave status \G;
如果在主库中创建一个新的数据库,然后在备库中看是否存在,如果存在,说明主备搭建好了。