主服务IP:192.168.136.1;
从服务IP:192.168.136.2。
开始前请确保两台服务现有数据一致。如果是通过文件COPY方式来同步数据的,注意修改auto.cnf下的UUID,否则会出错。
主服务器配置步骤
1.修改my.cnf配置文件
log_bin
#mysql的复制机制是基于binlog的复制机制。通过配置此项可以定义日志名称,默认是本机域名localhost。
server_id = 1
#数据库的id根据需要进行设置,主从服务器必须不同。
#binlog-do-db = ... 记录日志的数据库,多个用逗号分隔。
#binlog-ignore-db = .... 不记录日志的数据库。
2.重启mysql
3.查看主服务状态
mysql> FLUSHS TABLE WITH READ LOCK;--锁表
mysql> show master status\G;
*************************** 1. row ***************************
File: localhost-bin.000001
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
mysql> UNLOCK TABLES;
如果出现以上状态信息,表明主服务器配置成功。此时需要记住File、Position对应的值以便后用。
4.允许从服务的热备请求
mysql> grant replication slave on *.* to 'root'@'192.168.136.2' identified by '.';
从服务器配置步骤
1.修改my.cnf配置文件
server_id = 2
#数据库的id根据需要进行设置,主从服务器必须不同。
2.重启mysql
3.设置热备请求
mysql>stop slave;
mysql>change master to master_host='192.168.136.1',master_user='root',master_password='.',master_log_file='localhost-bin.000001',master_log_pos=120;
mysql>start slave;
master_log_file对应上文记录的File值,master_log_pos对应上文记录的Position值。注意Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数了。如果是5.1.7以前的版本,可以参考下面的my.cnf配置:
master-host=172.25.42.83
#主服务器的IP地址或者域名
master-port=3306
#主数据库的端口号
master-user=user
#同步数据库的用户
master-password=passwd
#同步数据库的密码
master-connect-retry=60
#如果从服务器发现主服务器断掉,重新连接的时间差
4.查看从服务器状态
mysql> show slave status\G;
*************************** 1. row ***************************
……
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
……
1 row in set (0.00 sec)
若看到以上两个信息就表示主从热备配置完成。