经验分享-mysql主从/双主热备的配置与常规错误排查

大家应该记得之前本站机器因为做的是冷备,而且由于一些不可抗因素导致备份也跟着丢失的事情。非常惨痛的教训。。虽然有不少的备份方案,但是给自己用的却没有,都是给客户搭建的冷备方案。所以我将分两三个文章讲讲热备。

工作原理

mysql的自带就有主从热备的功能,工作原理就是主库把执行操作记录日志,然后备份机把执行日志写入relay日志,然后在备份机上执行一次。期间通过一个指定的数据库账户密码远程登陆来进行通信。

准备工作

最好是临时关闭网站,然后把两个数据库名设置一样。数据库的数据一样。这是必须的哈。也就是所谓的初始状态一样。

远程连接

从上面的工作原理介绍(我是说的太简单了,有兴趣可以找别的文章深入了解)可以看出首先我们需要连接。讲远程连接,我首先想到你们的iptables或者别的防火墙的事情,这个由于不同系统不同防火墙,不同规则,所以我改天讲解并且放入口在这里,也可以自己百度搜索方法。

建立备份账户[面板]

建立账户有两个方法,一个通过phpmyadmin等数据库管理工具,一个利用命令行。这里我讲两个。

phpmyadmin方法:

登陆主服务器的phpmyadmin

 

点击添加用户,进入下面页面,填写账户、IP、密码。

这里第二行的IP地址是写备份服务器(也就是从机)的,比如你现在的主机器IP是123.456.1.1 ,备机IP是123.456.789.1,那么这里你就写123.456.789.1。

这里设置权限的时候,只要第三列 REPLICATION SLAVE 这个权限。也就是倒数第二个。然后提交即可。

建立备份账户[命令行]

首先,用putty等工具连主机器的SSH,输入下面命令登陆数据库。

  1. mysql -uroot -p

输入上面指令后回车,然后输入密码回车登陆[注意输入密码是看不到的]。然后出现 mysql>的提示符。输入SQL语句。如下:

  1. mysql> grant replication slave on *.* to ‘backup’@’123.456.789.1’ identified by ‘123456’;
  2. # 输入上面命令后回车,不包括 mysql>
  3. mysql> exit;
  4. # 输入exit; 退出SQL语句执行窗口。

上面这里就建立了一个可以在123.456.789.1这个IP上才能登陆的同步账户backup,密码是123456,权限是replication slave。

测试连接

在备份机(从机)上尝试登陆,看看是否成功。

  1. mysql -h123.456.1.1 -ubackup -p

输入指令后回车,输入密码,一样密码是看不见的,然后回车。

注意,因为是在备份机器上面,登陆主机器,所以这里的IP是主机器的IP而不是备份机的IP,和上面建立账户是不一样的。一个是建立时候指定可以登陆的IP白名单,一个是从白名单的机器登陆主机器。

如果登陆后,没有出现 mysql> 这样的提示符的,则是失败。需要回到前面远程连接这一环节检测防火墙的设置,端口开启等情况。正确的如下:

然后和上面一样,输入 exit;  退出界面。

发布者

yumanutong

网名 yumanutong ,简称小草,可以付费找我解决问题哦。