MySQL的主从配置。
一、选准备两台版本相同的MySQL数据库。
主机:A:192.168.0.100
从机:B:192.168.0.101
二、先登录主机A设置可创建具有复制权限的帐户。
mysql>GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.101' IDENTIFIED BY '123456'
更多可参考:MySQL创建帐号的操作。
三、打开主机A的my.ini配置文件,输入
server-id = 1 #主机的标识,整数
binlog-do-db = mstest #需要备份的数据库,多个写多行。
binlog-ignore-db = mysql #不需要备份的数据库,多个写多行。
log-bin =mysql2-bin #日志的文件
read-only =0 #主机,读写都可以。
四、打开从机B的my.ini配置文件,输入。
server-id =2 #从机的标识,整数
log_bin =mysql2-bin #日志文件
master-host =localhost #主机的host
master-user =root #第二步中创建的帐号
master-pass =123 #第二步中创建帐号的密码
master-port =3305 #主机端口号
master-connect-retry =60 #如果从服务器发现主机断掉,重新连接的时间差
replication-do-db =mstest #只复制的某个数据库
replication-ignore-db =mysql #不进行复制的数据库
五、同步数据库
分别重启主机和从机。
先使用mysqldump导出主机A的数据,然后再把导出的数据同步到从机B上。
六、验证同步是否成功
1、在主机A上 执行命令:
mysql>show master status\G;
出现如下内容
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: mstest
Binlog_Ignore_DB: mysql
2、在从机B上执行命令
mysql>show slave status\G;
出现一下内容
....
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
....
如果两个都是yes说明配置成功。
七、错误说明
如果在6.2中输出的内容为
//其他内容
Slave_IO_Running: No
Slave_SQL_Running: Yes
//其他内容
说明配置主从复制失败
解决办法:
在从机B上执行。
slave stop;
CHANGE MASTER TO
MASTER_HOST='xxx', #主机host
MASTER_USER='xx', #帐号
MASTER_PASS='xx', #密码
MASTER_PORT=3306, #主机端口
MASTER_LOG_FILE='xxx-bin.000001', #日志文件,为在6.1中显示的File的值。
MASTER_LOG_POS=1374; #日志位置,为在6.1中显示的Position的值
slave start;
如果问题还存在,在执行一下操作
1、重启主库
2、给从库重新授权,
3、执行一下命令。
slave stop;
reset slave;
slave start;
一、选准备两台版本相同的MySQL数据库。
主机:A:192.168.0.100
从机:B:192.168.0.101
二、先登录主机A设置可创建具有复制权限的帐户。
mysql>GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.101' IDENTIFIED BY '123456'
更多可参考:MySQL创建帐号的操作。
三、打开主机A的my.ini配置文件,输入
server-id = 1 #主机的标识,整数
binlog-do-db = mstest #需要备份的数据库,多个写多行。
binlog-ignore-db = mysql #不需要备份的数据库,多个写多行。
log-bin =mysql2-bin #日志的文件
read-only =0 #主机,读写都可以。
四、打开从机B的my.ini配置文件,输入。
server-id =2 #从机的标识,整数
log_bin =mysql2-bin #日志文件
master-host =localhost #主机的host
master-user =root #第二步中创建的帐号
master-pass =123 #第二步中创建帐号的密码
master-port =3305 #主机端口号
master-connect-retry =60 #如果从服务器发现主机断掉,重新连接的时间差
replication-do-db =mstest #只复制的某个数据库
replication-ignore-db =mysql #不进行复制的数据库
五、同步数据库
分别重启主机和从机。
先使用mysqldump导出主机A的数据,然后再把导出的数据同步到从机B上。
六、验证同步是否成功
1、在主机A上 执行命令:
mysql>show master status\G;
出现如下内容
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: mstest
Binlog_Ignore_DB: mysql
2、在从机B上执行命令
mysql>show slave status\G;
出现一下内容
....
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
....
如果两个都是yes说明配置成功。
七、错误说明
如果在6.2中输出的内容为
//其他内容
Slave_IO_Running: No
Slave_SQL_Running: Yes
//其他内容
说明配置主从复制失败
解决办法:
在从机B上执行。
slave stop;
CHANGE MASTER TO
MASTER_HOST='xxx', #主机host
MASTER_USER='xx', #帐号
MASTER_PASS='xx', #密码
MASTER_PORT=3306, #主机端口
MASTER_LOG_FILE='xxx-bin.000001', #日志文件,为在6.1中显示的File的值。
MASTER_LOG_POS=1374; #日志位置,为在6.1中显示的Position的值
slave start;
如果问题还存在,在执行一下操作
1、重启主库
2、给从库重新授权,
3、执行一下命令。
slave stop;
reset slave;
slave start;