IP的设置:A主机 IP:10.10.0.119;Mask:255.255.0.0;B主机 IP:10.10.8.112;Mask:255.255.0.0
在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status查看防火墙状态。如果防火墙状态。
为仍在运行。使用service iptables stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命令来禁用或定制。最终以两台主机可以相互ping通为佳。
3.2 配置A主(master) B从(slave)模式;3.2.1 配置A 为master。
增加一个用户同步使用的帐号:
GRANT FILE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’
GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’。
赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。
增加一个数据库作为同步数据库:create database test
创建一个表结构:create table mytest (username varchar(20),password varchar(20))
修改配置文件:修改A的/etc/my.cnf文件。
在my.cnf配置项中加入下面配置:
server-id = 1 #Server标识
log-bin
binlog-do-db=test #指定需要日志的数据库
重起数据库服务:
service mysqld restart
查看server-id:
show variable like ‘server_id’。
1.主服务器:#Master start
log-bin="d:/log/mysql/mysql_log_bin"
server-id=1
#Master end
2.从服务器:
#Slave start
log-bin="D:/log/mysql2/log-bin.log"
relay_log="D:/log/mysql2/relay-log-bin"
#从机id,区别于主机id
server-id=2
#主机ip,供从机连接主机用
#master-host=localhost
#主机端口
#master-port=3300
#刚才为从机复制主机数据新建的账号
#master-user=slave
#刚才为从机复制主机数据新建的密码
#master-password=654321
#重试间隔时间10秒
#master-connect-retry=10
#需要同步的数据库
#replicate-do-db=test
#启用从库日志,这样可以进行链式复制
log-slave-updates
#从库是否只读,0表示可读写,1表示只读
read-only=1
#只复制某个表
#replicate-do-table=tablename
#只复制某些表(可用匹配符)
#replicate-wild-do-table=tablename%
#只复制某个库
#replicate-do-db=dbname
#不复制某个表
#replicate-ignore-table=tablename
#不复制某些表
#replicate-wild-ignore-table=tablename%
#不复制某个库
#replicate-ignore-db=dbname
#Slave end
3.对从服务器制定主服务器使用CHANGE MASTER 语句
注意:1.一定要在主服务器上创建一个可以执行replication的用户
2.该用户名在从服务器上可远程登录到主服务器。
3.开启MySQL的log-bin日志功能
先在主数据库中创建新数据库rep_test。然后编辑主数据库的my.ini文件
在[mysqld]节点中增加如下内容:
server-id=1 #指定唯一的ID,1至32,必须的
log-bin=mysql-log-bin #指定二进制日志存放路径,必须的
binlog-do-db=rep_test #指定要同步的数据库,必须的
#binlog-ignore-db=mysql #指定不要同步的数据库,如果指定了binlog-do-db就不用再指定该项
重启主数据库,然后在主数据库中建立一个备份账户
mysql>grant replication slave on *.* to slave@192.168.1.128 identified by 'slave'
mysql>flush privileges
PS:identified by 指定的slave是账号slave@192.168.1.128 的密码
显示主服务器的状态信息,并且找到File 和 Position 的值记录下来;
mysql>show master status
在从数据库中创建新的数据库rep_test。
然后编辑从数据库的my.ini文件
在[mysqld]节点中增加如下内容:
server-id=2 #指定唯一的ID,2至32,必须的,并且不能跟主数据库一样
replicate-do-db=rep_test #指定要同步的数据库,必须的
#replicate-ignore-db=mysql #指定不要同步的数据库,
重启从数据库,设置登录主数据库的账号和密码等信息,然后启动slave
mysql>change master to master_host='192.168.1.2',master_user='slave',master_password='slave', master_log_file='mysql-bin.000002',master_log_pos=120
mysql>start slave
查看从数据库的信息
mysql>show slave status \G
如果出现: Slave_IO_Running: YesSlave_SQL_Running: Yes以上两项都为Yes,那说明没问题了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)