`
点点明心
  • 浏览: 12242 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

MYSQL主从及双机互备

阅读更多
操作步骤及问题:
-----------------------------------------------------------
一、获取IP,检查网络连接状态
1. ifconfig/ipconfig
测试: 主机A:192.168.3.10 从机B:192.168.3.11
2. ping

二、创建备份数据库: 主从机
CREATE DATABASE `dbtest` CHARACTER SET utf8;

三、创建同步用户及赋权: 测试帐号创建成功
引用
grant all privileges on *.* to mirze@'%' identified by '123456';
flush privileges;

四、主从创建:单向(主机操作,从机同步更新)
1. Master 配置: 修改 my.ini
找到[mysqld],模块下添加内容:
引用
server-id = 1     #主机唯一标识
log-bin=          #存放同步日志文件位置:重要,可指定值,确保文件可读写

#测试同步成功后加上
#read-only       =0          # 主机读写都可以
#binlog-do-db    =testdb     # 需要备份数据,多个写多行

#binlog-ignore-db=mysql     # 不需要备份的数据库,多个写多行

注意:配置文件修改完毕保存该配置并且删掉 mysql 的 data 目录下除数据库以外的文件。主要是 *.00000* 类似的文件以及 master.info ,为避免出错,一定要先删除。

2. Slave 配置: 修改 my.ini
找到[mysqld],模块下添加内容:
server-id = 2
master-host = 192.168.3.10    #主机IP
master-user = mirze        #主机同步用户
master-password = 123456    #主机同步用户密码
master-port = 3306
master-connect-retry = 60    #从服务器发现主服务器断掉,重连时间差(秒)
replicate-do-db = testdb    #同步数据库:多个写多行

配置完毕保存后,增加了master.info与relay-log.info等文件。
停止MYSQL服务,删除data目录下除数据库外的所有文件, master.info和relay-log.info两文件必须删除。
注意:master修改my.ini时,master.info和relay-log.info必须删除重启服务。

五、重启Mysql测试同步状态
1. show master status;
记住file 和 position值,在 slave状态检验

2. show slave status\G;

注意:检查参数 Slave_IO_State 、 Slave_IO_Running 、 Slave_SQL_Running
说明:Slave_IO_State 的状态值是由 Slave_IO_Running 的值决定的,如果 Slave_IO_Running 和 Slave_SQL_Running 的值都为 Yes ,并且 Slave_IO_State 的值为 :Waiting for master to send event ,那么说明配置是没问题的可以进行下一步同步尝试了。

六、同步数据测试: 单向
1. Master 使用同步帐号(mirze)登录,创建数据:
user testdb;
create table test(id int);
show tables;

2. Slave 使用同步帐号(mirze)登录,查看数据:
user testdb;
show tables;

七、双机互备配置
1. Master : my.ini 中 [mysqld] 添加:
master-host = 192.168.3.11
master-user = mirze
master-password = 123456
master-port = 3306
master-connect-retry = 60
replicate-do-db = testdb

2. Slave : my.ini 中 [mysqld] 添加:
Log-bin =

可以 down 其中一台机器或者 MySQL 服务器,然后在另外一个 MySQL 服务器上进行插入、修改或者删除等操作,然后再重启另外一台机器,里面数据也随着更新了。


八、问题:
1. 关闭linux防火墙: ping 不通的情况,需检查网络设置和防火墙设置
vim  /etc/sysconfig/iptables;

在文件中拷贝设置端口 22 的语句,粘贴在该语句下面,并将 22 修改为 3306 ,即开放 3306 端口:
-A RH –Firewall -1 -INPUT   -p  tcp -m   state   --state NEW -m tcp --dport 3306 -j ACCEPT
保存重启firewall服务.

service iptables restart;

2. IP 变化导致数据不能同步问题
查看IP是否变化,修改配置文件,删除master.info和relay-log.info文件,重启服务.

3. 配置之后在查看 slave 状态时,三个关键参数值不对
Slave_IO_Running:No
#复制没有启动,执行命令 slave start io-thread 尝试启动 io 线程
Slave_SQL_Running:No
#执行命令 slave start sql_thread

执行完后,如果状态值还是不对,检查一下 master 中的 file 和 position 的值和 slave 状态中的 master_log_file 、 master_log_pos 的值分别是否对应。如果不对应 , 执行以下命令修改 slave 的状态值:
stop slave;
change master to master_log_file='mysql-bin.000001', master_log_pos= 106 ;
如其他值也有问题,可在后面累加,以逗号隔开,命令结束时用分号结尾
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics