mysql link数据同步_mysql同步数据

本文详细介绍了如何在Linux环境下配置MySQL主从复制,包括创建同步用户、数据库,设置Master和Slave参数,检查并修复同步问题,以及进行测试确保数据同步成功。还扩展讲解了双机热备配置步骤,确保高可用性。
摘要由CSDN通过智能技术生成

mysql同步数据

一,cluster模式配置

数据库同步复制功能的设置都在mysql的设置文件中体现。主要工作原理为slave端记录并且执行master端的操作日志.mysql的配置文件(Linux下为/etc/my.cnf)1、实施环境:操作系统:2台linux AS 4,完全安装.A ip:192.168.1.240  (主数据库)B ip:192.168.1.247  (从数据库)

2、配置方法

(1)主从模式[Master->Slave]:A->B

在A中配置:

#service mysql start

#/usr/local/mysql/bin/mysql –u root -p123456

增加一个用户做为同步的用户帐号:

Mysql>GRANT REPLICATION SLAVE ON *.* TO lixin@’192.168.1.247′ IDENTIFIED BY ‘123456’;

//lixin是同步账号,123456是同步密码

增加一个数据库作为同步数据库:

Mysql>create database backup;

在B上配置:

#service mysql start

#/usr/local/mysql/bin/mysql –u root -p123456

增加一个用户最为同步的用户帐号:

Mysql> GRANT REPLICATION SLAVE ON *.* TO lixin@’192.168.1.240′ IDENTIFIED BY ‘123456’;

//lixin是同步账号,123456是同步密码增加一个数据库作为同步数据库:

Mysql>create database backup;

关闭MYSQL数据库

(2)配置Master、Slave参数

1.修改A中mysql的my.cnf文件。

#vi /etc/my.cnf

server-id=1

binlog-do-db=backup此处数据库名为要数据同步的数据库

log_err=my-err.log同步错误日志max_binlog_size=104857600配置完后重起数据库服务

用show master status命令看日志情况。

mysql> show master status;

+——————+———-+————–+——————+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+——————+———-+————–+——————+| mysql-bin.000008 |      106 | backup       |                  |+——————+———-+————–+——————+1 row in set (0.00 sec)

2.修改B中mysql的my.cnf文件。

#vi /etc/my.cnfserver-id=2

master-host=192.168.1.240//maste主机IPmaster-user=lixin//lixin是同步账号master-password=123456//123456是同步密码master-port=3306//master主机的数据库端口master-connect-retry=60//设置心跳时间(库同步间隔)replicate-do-db=backup//同步的数据库名3、启动数据库和数据复制

启动SLAVE从数据库:

#service mysql start

#/usr/local/mysql/bin/mysql –u root -p123456

Mysql>stopslave ;      #暂停slave从master同步数据.

启动MASTER从数据库:

# service mysqld start

#/usr/local/mysql/bin/mysql –u root -p123456

回到SLAVE从数据库终端:

Mysql>start slave;

设置完成,启动成功:此处最好重启mysql服务

#service mysql restart

注:有时候会启动失败,可采用下面启动方法#/usr/local/mysql/bin/mysqladmin  –u root shutdown #关闭数据库#/usr/local/mysql/bin/mysqld_safe &                       #启动数据库

查看是否启动同步复制线程:

Mysql>show slave status\G;

*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.1.240Master_User: lixinMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000008Read_Master_Log_Pos: 106Relay_Log_File: localhost-relay-bin.000002Relay_Log_Pos: 251Relay_Master_Log_File: mysql-bin.000008Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: backupReplicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 106Relay_Log_Space: 410Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:1 row in set (0.00 sec)注意:slave_IO进程及slave_SQL进程都必须正常运行,在状态输出重表现为:   Slave_IO_Running: Yes及Slave_SQL_Running: Yes 否则都是不正确的状态(如一个值Yes,另外一个是NO则不行).

如果不同步的解决办法:

在master执行

mysql>stop slave;

Mysql>show master status;+——————+———-+————–+——————+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+——————+———-+————–+——————+

| mysql-bin.000008 |     106 | backup       |                  |

+——————+———-+————–+——————+

1 row in set (0.00 sec)

注意master中显示的记录点位置和正在记录的日志文件名,在slave中执行:

mysql>change master to master_host=’192.168.1.240‘, master_user=‘lixin’, master_password=‘123456’, master_log_file=‘mysql-bin.000008’, master_log_pos=106;Mysql>exit

#service mysql restart      #重启master和slave的mysql

未成功的话执行:

#/usr/bin/mysqladmin –u root shutdown

#/usr/bin/mysqld_safe &

4、进行测试同步是否成功

在A服务器创建表

mysql>use backup;

mysql>create table lixin(name char(4));然后在B服务器查看表有没有同步过来,如果过来就表示同步成功,否则就是失败了。

二.双机热备配置

配置双机方法其实就是在上述的cluster基础上略加改动,既在从机上做主机配置,在主机上做从机配置。具体方法如下:

A ip:192.168.1.240B ip:192.168.1.247在确定cluster模式配置成功后,关闭master(A)数据库:

#service mysql stop

#vi /etc/my.cnf

在配置文件中加入:

master-host=192.168.1.247     #设置主机IP地址(从数据库ip)master-user=lixin                   #设置主机同步库用户名master-password=123456#设置主机同步库密码replicate-do-db=backup           #设置主要同步数据库master-connect-retry=60         #设置心跳时间(库同步间隔)

log_err=my-err.log                  #同步错误日志

完成后保存退出.启动:

#service mysql start#/usr/local/mysql/bin/mysql –u root -p123456

配置slave(B)端/etc/my.cnf,加入以下内容:

#vi /etc/my.cnf

binlog-do-db=backup

log-bin=my_log

重启mysql服务:

#Service mysql restart

在A执行:

Mysql>start slave;

Mysql>show slave status\G;

————+

| Waiting for master to send event | 192.168.0.112 | backup     |     3306 |         60 | my_log.000024   |             79 | l2-relay-bin.000010 |         4 | my_log.000024       | Yes         | Yes           | backup       |               |             |                 |                 |                   |       0 |         |         0 |             79 |           4 | None         |           |         0 | No           |             |             |           |             |           |             2741 |在B执行:;

mysql> show master status;

+—————+———-+————–+——————+

| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+—————+———-+————–+——————+

| my_log.000024 |     79 | backup     |             |

+—————+———-+————–+——————+

1 row in set (0.00 sec)

对比以上信息,日志记录文件名,同步数词库名和日志记录点,如果无误代表现在SvrB已经可以做为A的master运行.但它本身也同时在做为A的slave来运行.在A执行:

Mysql>show master status;

+————–+———-+————–+——————+

| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+————–+———-+————–+——————+

| mylog.000009 |     4 | backup     |             |

+————–+———-+————–+——————+

1 row in set (0.00 sec)

在B执行mysql> show slave status;

————-+—————–+——————-+—————-+———————–+

| Waiting for master to send event | 192.168.0.111 | backup     |     3306 |         60 | mylog.000009   |             4 | l1-relay-bin.000003 |       313 | mylog.000009       | Yes         | Yes           | backup       |               |             |                 |                 |                   |       0 |         |         0 |             4 |         313 | None         |           |         0 | No           |             |             |           |             |           |             3575 |

+———————————-+—————+————-+————-+

1 row in set (0.00 sec)

对比以上A和B中的主机ip,同步数词库,同步日志文件名,同步日志记录点.确认无误后完成.注意:在对mysql进行配置后,master端var/lib/mysql/下生成的master.info内容可能会不正确。可能会导致的错误是在将SvrA配置成slave时执行slave start出现大概意思为:“本机未配置成slave服务器,请更改config文件或者执行change master to命令…”的提示,解决办法为:

#Vi /var/lib/mysql/master.info

14

mylog.000007   ###同步后要记录的日志文件79         ###日志记录点192.168.0.111   ###主机IP

Backup       ###同步数据库123456       ###同步数据库密码3306       ###同步端口60         ###心跳时间(同步间隔)0核对以上信息是否配置正确,为了更真实的测试同步准确性,建议在库中导入数据进行测试.以上mysql cluster模式和双机热备模式配置基本完成.

本文转自wiliiwin 51CTO博客,原文链接:http://blog.51cto.com/wiliiwin/199216

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值