mysql数据主从同步

MySql的 主从同步 是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。 

要实现 MySql 的 主从同步 ,首先必须打开 Master 端的BinaryLog(mysql-bin)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。

主服务器IP:192.168.1.60

从服务IP:192.168.1.61

一、主数据库操作
1、配置my.cnf文件

采用系统默认的etc/my.cnf配置文件进行配置,对主服务器进行配置主要需要在配置文件中添加以下几项(在添加的时候要确保它们不在文件中存在,因为如选择上面几种不同的配置文件,配置里的内容会不一样,如果没有相应的项,需要添加)。

用vi etc/my.cnf打开文件,对文件进行修改,在[mysqld]下面进行添加修改:

Server-id = 1  #这是数据库ID,此ID是唯一的,主库默认为1,其他从库以此ID进行递增,ID值不能重复,否则会同步出错;

log-bin = mysql-bin  二进制日志文件,此项为必填项,否则不能同步数据;

binlog-do-db = testcreate  #需要同步的数据库,如果需要同步多个数据库;

则继续添加此项。

binlog-do-db = testcreate1

binlog-do-db = testcreate2

binlog-ignore-db = mysql 不需要同步的数据库;

至此主服务器配置my.cnf配置完成,保存退出文件。

对Mysql服务器进行重启,如果重启失败,则证明配置文件错误,需重新检查。
2、配置完成后需要建立同步用的数据库账户

主库需要提供一个账户让从库连接并同步,用命令:

mysql>grantreplication slave on *.* to ‘testcreate’@’192.168.1.61’ identified by ‘123456’;

说明:
‘testcreate’:同步的数据库;

‘192.168.1.61’:同步的数据库地址;

‘123456’ :同步的数据库密码,在从库配置时需要设置。

二、 从库配置

从服务器的配置基本与主库配置差不多,选择的从库服务器为:192.168.1.61

1、配置从库服务my.cnf文件

# vietc/my.cnf 对其进行如下修改:

Server-id = 2 #这里ID改为2 因为主库为1;

log-bin = mysql-bin  必填项,用于数据同步;

master-host = 192.168.1.60 主库IP;

master-user = test 同步用的账户;

master-password = 123456 同步账户密码,主库时的设置;

master-port = 3306 同步数据库的端口号。

2、重启从库服务器

#service mysqld restart

如果重启失败则配置文件有问题,需重新检查配置。

3、调整复制过来的数据库的权限(如果有从主库复制过来的数据库)

主库复制过来的数据库权限都为root权限,需要修改为mysql权限

#chown–R mysql:mysql /var/lib/mysql

如果从库是新建的库就不需要进行此步骤

4、显示从服务器状态

mysql>showslave status\G;

如果slave_io_running和slave_sql_running都为yes则表示从服务器配置成功。

如果遇到关于position相关的错误,就需要再手动设置以下File/Postion的信息

mysql>Changemaster to master_host = ‘192.168.1.60’

master_user= ‘test’

master_password=’123456’

master_log_file=’mysql-bin.000001’,  主库的文件信息

master_log_pos=’106’;主库的Position信息

你可能感兴趣的:(mysql)