本文共 1468 字,大约阅读时间需要 4 分钟。
mysql主从复制的原理:
主服务器master产生二进制日志文件,从服务器slave实时分析这个二进制日志文件,如果发现主服务器master做什么,从服务器slave也跟着做什么。
【主服务器master】
1、给主服务器安装mysql
# 安装mysql
yum -y install mysql mysql-server mysql-devel
# 配置mysql开机启动
chkconfig mysqld on
# 修改root用户的密码,这里假设密码改成了admin123(可选)
mysqladmin -uroot -p password admin123
2、修改主服务器的mysql配置文件
[mysqld] 一栏下面配置如下信息
server-id=100 // 主服务器ID,本案例主服务器IP是192.168.1.100,一般取IP段后一位
log-bin=master-bin // 主服务器日志文件,名字随意
3、启动mysql服务
service mysqld start 或 service mysqld restart
4、给主服务器的mysql用户授权
# 给用户授予远程IP访问权限(这里192.168.1.229为slave从服务器的IP)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.229' IDENTIFIED BY 'admin123' WITH GRANT OPTION;
# 授权后要刷新权限
FLUSH PRIVILEGES;
5、查看主服务器master状态
show master status;
留意这里的File和Position字段值,等会儿在从服务器slave中配置监听会用得着。
【从服务器slave】
1、给从服务器安装mysql
# 安装mysql
yum -y install mysql mysql-server mysql-devel
# 配置mysql开机启动
chkconfig mysqld on
2、修改从服务器的mysql配置文件
[mysqld] 一栏下面配置如下信息
server-id=229 // 从服务器ID,本案例从服务器IP是192.168.1.229,一般取IP段后一位
3、启动mysql服务
service mysqld start 或 service mysqld restart
4、在从服务器的mysql中执行如下命令,使之可以监听主服务器的二进制日志文件
change master to master_host = '192.168.1.100',master_port = 3306,master_user = 'root',master_password = 'admin123', master_log_file = 'master-bin.000001',master_log_pos = 107;
# 开始监听
start slave; // 如果想停止监听,stop slave
# 查看监听状态
show slave status; // 有时候主从复制失败,可以从这个命令里看出些原因
【测试】
在主服务器mysql上创建数据库
create database mytest;
在从服务器mysql上查询数据库列表
show databases;
如果在从服务器上查询到了在主服务器上创建的数据库mytest,说明mysql主从复制环境搭建成功。