一、注意事项
1、从数据库mysql版本等于或大于主数据库Mysql版本
二、实验环境
1、主:windows7 mysql5.5
2、从:windows10 mysql5.6
三、主数据库配置(master)
参考文章:
http://blog.youkuaiyun.com/qmhball/article/details/8233769
主机(master)配置:
1.修改mysql配置文件my.cnf
在[mysqld]标签下添加以下几行
注意:
log-bin,server-id是配置文件中必须添加的内容。此时主服务器默认对所有数据库进行备份。如果需要特殊指明只对某个数据库进行备份或不备份,则可以加入binlog-do-db和binlog-ignore-db选项。有关(log-bin的详细说明见附录1)
在测试主机上,我们实际添加入如下内容:
2.为从服务器添加mysql账户并配置权限
在主服务器上,必须为从服务器创建一个用来连接主服务器的用户,并设置replication slave权限。所用具体命令如下:
在测试机上,我们实际执行:
这时在mysql库的user表中使用
可以看到Repl_slave_priv项对就的值为Y。
3.导出主服务器数据
导出主服务器数据,以备之后将其导入从服务器,使主从服务器的初始状态保持一致。
在测试机上,我们实际执行:
4.记录File 及Position 项的值
重启mysql,使用show master status\G;查看主服务器状态,记录File 及Position 项的值,以便之后对从服务器进行配置。
在测试机上,我们实际执行时看到的结果如下:
*************************** 1. row ***************************
File: simba-bin.000008
Position: 79
Binlog_Do_DB: test
Binlog_Ignore_DB:
1 row in set (0.00 sec)
其中File为imba-bin.000008;Position为79。
至此主服务器配置完毕
1.修改mysql配置文件my.cnf
在[mysqld]标签下添加以下几行
注意:
log-bin,server-id是配置文件中必须添加的内容。此时主服务器默认对所有数据库进行备份。如果需要特殊指明只对某个数据库进行备份或不备份,则可以加入binlog-do-db和binlog-ignore-db选项。有关(log-bin的详细说明见附录1)
在测试主机上,我们实际添加入如下内容:
2.为从服务器添加mysql账户并配置权限
在主服务器上,必须为从服务器创建一个用来连接主服务器的用户,并设置replication slave权限。所用具体命令如下:
在测试机上,我们实际执行:
这时在mysql库的user表中使用
可以看到Repl_slave_priv项对就的值为Y。
3.导出主服务器数据
导出主服务器数据,以备之后将其导入从服务器,使主从服务器的初始状态保持一致。
在测试机上,我们实际执行:
4.记录File 及Position 项的值
重启mysql,使用show master status\G;查看主服务器状态,记录File 及Position 项的值,以便之后对从服务器进行配置。
在测试机上,我们实际执行时看到的结果如下:
*************************** 1. row ***************************
File: simba-bin.000008
Position: 79
Binlog_Do_DB: test
Binlog_Ignore_DB:
1 row in set (0.00 sec)
其中File为imba-bin.000008;Position为79。
至此主服务器配置完毕
四、从数据库配置(slave)
在[mysqld]标签下添加以下面一行:
实际中,我们添加:
2.导入主机数据库
在测试机上,我们实际执行:
mysql test < test.bak
3.重启mysql数据库并设置相关参数
4.检查数据库查看相关参数
使用show slave status \G;查看相关参数是否正确。
在实际执行时,我们在从机上看到的结果如下(只摘取了部分输出):
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.1.146.133
Master_User: replication
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: darkstar-bin.000006
Read_Master_Log_Pos: 79
Relay_Log_File: simba-relay-bin.000003
Relay_Log_Pos: 171
Relay_Master_Log_File: darkstar-bin.000006
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
……
对部分参数的解释:
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上参数说听slave正常运行,正等待主服务器发来的消息。此时若用netstate命令可以看到从机与主机间已经建立了一条边接。
特别需要注意的两个参数是:
Master_Log_File和Read_Master_Log_Pos。Master_Log_File代表主机上用于主备同步的日志文件名,Read_Master_Log_Pos代表上一次成功同步到的日志文件中的位置。
如果这两项与先前在主服务器上看到的File及Position的值不相符,则无法正确进行同步。
五、提醒
1、使用show variables like '%server_id%';命令查看my.conf配置文件 server-id值,主一般是1,从是2,主从必须不同。
2、flush logs命令,刷新二进制日志文件;show master status\G;查看最新File和Position值