mysql主从复制和主主复制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主从复制和主主复制相关的知识,希望对你有一定的参考价值。

一、准备(主从都需要配置):

yum -y install mysql mysql-server #安装mysql

yum -y install ntpdate #安装时间同步

echo ‘*/1 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null‘ >>/var/spool/cron/root #配置网络时间同步

service mysqld start #启动服务

chkconfig --add mysqld #添加为系统服务

chkconfig  mysqld on #开启默认运行级别


二、主服务器配置:主配置文件默认为:/etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

symbolic-links=0

log-bin=master-bin #开启二进制日志文件

server-id=1 #设置服务器id,保证全局唯一


service mysqld restart #重启动服务

mysqladmin -u root password 123.com #设置数据库管理员密码

mysql -u root -p #登录数据库

show global variables like ‘%server%‘; #数据库id

show master logs; #查看数据库二进制日志

show master status; #查看主服务器状态,记住二进制日志名,配置从服务器会用

grant replication slave,replication client on *.* to  ‘copy‘@‘192.168.0.50‘ identified by ‘123.com‘;

#授权192.168.0.50主机上的copy用户对所有库有复制权限

select Host,User,Password from mysql.user; #查看用户

三、从服务器配置:

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

symbolic-links=0

relay-log=slave-log #启用中继日志

server-id=10 #服务器id,全局唯一

read-only=1 #将服务器设置为只读模式(对拥有root权限的用户无效)

service mysqld restart #重启动服务

mysqladmin -u root password 123.com #设置数据库管理员密码

mysql -u root -p #登录数据库

change master to master_host=‘192.168.0.10‘,master_user=‘copy‘,master_password=‘123.com‘,master_log_file=‘master-bin.000001‘,master_log_pos=590;

master_host:主服务器地址

master_user:拥有复制权限的用户

master_password:密码

master_log_file:从哪个二进制日志开始复制

master_log_pos:从二进制日志的什么位置开始复制

start slave; #开启从服务器

show slave status\G; #查看从服务器状态

四、验证主从:

主服务器:

mysql -u root -p

create database db_test; #创建数据库

从服务器:

mysql -u root -p

show databases; #查看服务器是否同步

create database mage; #SQL执行失败为从服务器配置只读成功


五、主主复制

服务器A:

[mysqld] #添加内容

log-bin=master-bin #启用二进制日志

relay-log=slave-log #启用中继日志

server-id=1 #服务器id,全局唯一

auto-increment-offset=1 #自增列起始

auto-increment-increment=2 #自增列一次步进(例:1,3,5,7,9...)

mysql -uroot -p #进入数据库

grant replication slave,replication client on *.* to  ‘copy‘@‘192.168.0.50‘ identified by ‘123.com‘;

change master to master_host=‘192.168.0.50‘,master_user=‘copy‘,master_password=‘123.com‘,master_log_file=‘master-bin.000001‘,master_log_pos=106;

start slave;

show slave status\G;

服务器B:

[mysqld] #添加内容

log-bin=master-bin

relay-log=slave-log

server-id=10

auto-increment-offset=2 #自增列起始

auto-increment-increment=2 #自增列一次步进(例:2,4,6,8,10...)


mysql -uroot -p #进入数据库

grant replication slave,replication client on *.* to  ‘copy‘@‘192.168.0.10‘ identified by ‘123.com‘;

change master to master_host=‘192.168.0.10‘,master_user=‘copy‘,master_password=‘123.com‘,master_log_file=‘master-bin.000003‘,master_log_pos=106;

start slave;

show slave status\G;

本文出自 “自动化运维” 博客,请务必保留此出处http://hongchen99.blog.51cto.com/12534281/1917137

以上是关于mysql主从复制和主主复制的主要内容,如果未能解决你的问题,请参考以下文章

mysql数据库的主从复制和主主复制

MySQL数据的主从复制半同步复制和主主复制详解

MySQL数据的主从复制半同步复制和主主复制详解

MySQL数据的主从复制半同步复制和主主复制详解

MYSQL(主从和主主配置)

主从复制及主主复制的实现