所需服务器:两台 centos7 linux虚拟机
服务器分配:server 192.168.56.201 client 192.168.56.202
说明:使用server做主库服务器client做从库服务器
第一步:准备两台linux虚拟机;
其中一台服务器:
另一台服务器:
在这里可以对两个数据库均授权一个用户拥有所有权限:
mysql>grant all privileges on *.* to hadoop@’%’ identified by ‘hadoop’;
mysql>flush privileges;
注: ‘%’中间是没有空格的
第二步:检查安装好mysql5.7.17社区版本数据库(此处略),确保两台服务器安装同一版本数据库;
第三步:设置log_bin,两台服务器都需要设置;
主库服务器上 vi /etc/my.cnf
log_bin=mysql-bin
server_id=1
在从库服务器上vi /etc/my.cnf
log_bin=mysql-bin
server_id=2
注意两个server_id取值不一样。
第四步:设置master status;
我的机器安装mysql并授权hadoop用户之后mysql-bin的position是154
两台机器的mysql-bin状态一定要一致,如果不一致,可以使用reset master命令重置。
第五步:对从服务器做set master to;
在保证两台机器mysql-bin状态一致之后可以进行主从同步的设置了,主要在从库服务器上设置。
mysql> change master to master_host="192.168.56.201", master_user="hadoop", master_password="hadoop";
第六步:启动主从同步并验证。
设置完master to 之后直接查看slave status会出现这样的问题,表明同步过程并没有开启
启动主从同步(在从库服务器上操作)并查看slave status
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.56.201
Master_User: hadoop
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 154
Relay_Log_File: client-relay-bin.000002
Relay_Log_Pos: 367
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
如下图所示表示启动主从同步过程成功
第七步:数据同步验证:主库写入数据,从库查看数据。
在主库上操作:
在从库上查看:
总结:
mysql设置主从复制重要的两步:设置log_bin,从库上设置master to 并 start slave;