MYSQL主从复制配置步骤

xiaoxiao2021-02-27  171

情况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;    如果在主库中创建一个新的数据库,然后在备库中看是否存在,如果存在,说明主备搭建好了。
转载请注明原文地址: https://www.6miu.com/read-13596.html

最新回复(0)