MySQL主从同步技术

一,先装mysql

准备两台服务器,主服务器是10.0.0.200  副服务器是10.0.0.128
主服务器当作mysql的服务端,下载mysql-server
yum install mysql-server
副服务器当作mysql的客户端,下载mysql
yum install mysql

服务端

service mysqld start  # 启动服务
mysql -uroot -p # 登陆
#密码为空,直接回车就登陆进来了
show database; # 显示库
create user 'xiaoming'@'10.0.0.128' identified by '123456'; # 新建用于同步的账号xiaoming,允许同步的从库地址是10.0.0.128,密码是123456
create user 'xiaoming'@'%' identified by '123456'; # 新建用于同步的账号xiaoming,允许所有从库登陆,密码是123456
flush privileges; # 立即刷新

客户端  从库

mysql -uroot -p -h10.0.0.200  # 登陆mysql服务端
123456 # 紧接着输入密码
# 然后就登陆进来了

 二,mysql主从复制配置

原理:主库里面执行sql语句(data changes),数据变动之后,它会将这些变动存到自己的日志(binary log)里面去,里面村的二进制。然后日志内容交给从库,从库就从这些二进制中读取变动,然后将这些变动写入自己的日志(Realy log),然后从库将这些变动转化为sql语句并执行sql语句。这样就完成了数据同步的作用。

 2.1 主库添加配置

# 在根目录,不在mysql中
vim /etc/my.cnf # mysql服务端配置默认在根目录里的etc里面的一个my.cnf文件里面
# 添加到[mysqld]的下面
server-id=1
log-bin=mysql-bin # 日志,注意名字不固定,可以叫mysql-s,就是通过这个配置,实现了写入日志的功能
# 然后保存退出
service mysqld restart # 重启mysql服务端

2.2 主库添加从库账号,要通过一个账号同步

create user 'xiaoming'@'10.0.0.128' identified by '123456';  # 新建用于同步的账号xiaoming,允许同步的从库地址是10.0.0.128,密码是123456
grant replication slave on *.* to 'xiaoming'@'10.0.0.128'; # 远程授权授权给地址为10.0.0.128的xiaoming账号的所有库所有表

2.3 查询主库的状态

show master status;
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      370 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql-bin.000001这个文件就是主库里面的Binary log日志文件
File是二进制日志文件名,Position 是日志开始的位置。后面从库会用到 后面从库会用到 后面从库会用到!

change master to master_host='10.0.0.200',
master_user='xiaoming',
master_password='123456',
master_log_file=mysql-bin.000001',

master_log_pos=370;

原文地址:https://www.cnblogs.com/aaronthon/p/9506638.html