1.分别在master服务器和slave服务器上安装 mysql
$yum install -y mysql mysql-dev mysql-master
A.在master上操作:
A.1.编辑mysql配置文件:
$ vim /etc/my.cnf
在[mysqld]段内添加行:
server-id=129 #根据喜好随便起,最好有一定规律。
log-bin=mysql-bin #开启二进制日志功能,必须
A.2. 重启mysqld服务,进入mysql
$service mysqld restart;mysql
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.168.129‘ identified by ‘123456‘; #建立执行从备份的mysql帐户repl ,密码:123456,并只接受指定IP的连接。接受所有IP连接master时将‘192.168.168.129‘改为:‘%‘
A.3 查看mysql master 状态
mysql>show master status; #记住 File 和 Position 的值(680)
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 680 | | |
+------------------+----------+--------------+------------------+
B.SLAVE主机设置:
B.1 编辑slave配置文件
$ vim /etc/my.cnf
在 [mysqld] 内添加/修改
server-id=IP最后一段 #设置ID,不能和master重复
log-bin=mysql-bin #开启二进制日志,可选。当slave做为其他主机的master时要启用。$service mysqld restart;mysql #重启mysqld服务,进入mysql
B.2. 连接到 master msyql
mysql>change master to master_host=‘192.168.128.128‘,master_user=‘repl‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=680; #这是一条完整的语句,不断开
B3. 启用slave功能
mysql>slave start;
B.4.查看slave状态:
msyql>show slave status\G;
有以下两项代表成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
测试:在maste上创建一个数据库ABC,如果slave上也存在ABC数据库代表成功:
MASTER mysql:
mysql>create database ABC;
mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schea |
| abc |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
SLAVE mysql:
mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| abc |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
在实验过程中,slave一直不能连接上master ,最后确定原因为master授权时IP有错误,导致slave无法连接,这一点要牢记。错误代码为:1130
MASTER需要重启时,需要先在SLAVE上执行:stop slave命令,master重启完成后,再重新启动slave:start slave .否则主从可能会中断。