标签:
思路:在主服务上建立2进制日志,每产生语句或磁盘变化就写进日志,我们可以通过主服务器设置一个账号,
修改下my.cnf配置文件来让从服务器建立relaylog,这个时候主服务器创建一个slave账号,在从服务器上
都过语句连接主服务器,开启复制功能实现主从复制。
/usr/libexec/mysqld --skip-grant-tables 检测密码权限的取消(关闭mysql进入需要账号)
mysql两台服务器创建主从复制配置过程:
本人虚拟机下有两台linux,ip为199,200
1:200做从服务器
2:199做为主服务器
3:保证主从3306端口互通
4:配置主服务器打开binlog
编辑my.cnf
#给服务器起一个唯一的id
server-id=199
#binary log 开启二进制日志
log-bin=mysql-bin
#statement row mixed
#指定日志格式
binlog-format=mixed/row/statement
说明:主服务器的日志格式有statement,row,mixed3种,其中mixed是指前两种的混合
row:一般只影响一行的用row比较好
statement:语句时针对数据库每一行的,反映在磁盘上的很多row都发生了变化,此处适合就statement格式
mixed:2种形式都支持的一种混合格式
重启mysql
show master status;//查看下master是否已经充当了主服务器
5:配置从服务器
#relay log 从服务器中继日志
relay-log=mysql-relay
服务器id
server-id=200
#指定只读
read-only=1
重启服务器
6:在主服务上创建一个slave账号
grant repliaction slave,replication client on *.*
to ‘repl‘@‘192.168.%.%‘ identified by ‘repl‘;
//刷新mysql权限
flush privileges;
7:在从服务器通过语句指定要复制的服务器(注意:可以一主多从,不可以一从多主)
->change master to
->master_host=‘192.168.0.199‘,
->master_user=‘repl‘,
->master_password=‘repl‘,
->master_log_file=‘mysql-bin.000003‘,
->master_log_pos=278;
?
8:在从服务器上启动复制
->start slave;
->show slave status;查看slave的状态
9:可以在主服务器上操作数据库看从服务器数据库是否有复制成功
常用语句
show master status;查看master的状态,尤其是当前的日志及位置
show slave status;查看slave的状态
reset slave;重置slave状态
start slave;启动slave状态(开始监听master的变化)
stop slave;暂停slave状态
标签:
原文地址:http://www.cnblogs.com/lisqiong/p/5685889.html