linux mysql双机备份、双机热备、高可用
http://www.centoscn.com/mysql/2016/0317/6853.html
前提两台服务器的数据库版本要一样
主服务器:192.168.1.1(Master)
从服务器:192.168.1.2(Slave)
第一步:给创建主服务器创建连接帐户,该帐户必须授予REPLICATION SLAVE权限。因为从mysql版本3.2以后就可以通过REPLICATION对其进行双机热备的功能操作
mysql> grant replication slave on . to 'master_user' @'192.168.1.2' identified by '123456';
mysql> flush privileges;
创建好同步连接帐户后,我们可以通过在从服务器(Slave)上用replicat帐户对主服务器(Master)数据库进行访问下,看下是否能连接成功。
在从服务器(Slave)上输入如下指令:
[root@localhost ~]# mysql -h 192.168.1.1 -umaster_user –p
第二步:修改配置文件
修改主服务器配置文件/etc/my.cnf
server-id = 1
log-bin=mysql-bin
binlog-do-db = test
binlog-ignore-db = mysql
其中前两行可能就有,可以不用动,没有再添加,添加下面两行即可 binlog-do-db是你要同步的数据库(据说需要同步多个数据库的,好像是binlog-do-db再写一遍,不是传统的将两个数据用逗号或者空格分开),binlog-ignore-db是不需要同步的数据库(不同步的数据如果是多个的话和binlog-do-db一样,binlog-ignore-db也是一样)
修改从服务器配置文件/etc/my.cnf
server-id = 2
log-bin=mysql-bin
binlog-do-db = test
binlog-ignore-db = mysql
主服务器的server-id和从服务器的server-id不能一样
第三步:查看主服务器Master状态
登录到主服务器数据库用以下命令查看Master状态,如下图:
show master status\G;
第四步:最重要的一步
登录从服务器数据库,先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。
mysql>stop slave;
mysql>change master to master_host='192.168.1.1',master_user='master_user',master_password='123456', master_log_file='mysql-bin.000004',master_log_pos=13310;
master_host是主服务器IP地址,master_user是刚才第一步创建的连接帐户用户名,master_password是密码,(最重要的来了)master_log_file是第三步中主服务器数据库的Master状态的File,master_log_pos是主服务器数据库的Master状态Position。然后启动slave服务线程mysql>start slave;
最后一步:查看从服务器slave状态:
mysql> SHOW SLAVE STATUS\G;
当看到以下两项都为yes,就说明配置成功了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
接下来在主数据库添加数据然后再看从数据库是不是也有了。