Mysql数据库主从配置

来源:互联网 发布:人工智能下肢辅助支架 编辑:程序博客网 时间:2024/04/30 22:09
                 

主从复制的原理

分为同步复制和异步复制,实际复制架构中大部分为异步复制。 复制的基本过程如下:
1).Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;
2).Master接收到来自Slave的IO进程的请求后,通过负责复制的IO进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave
的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置;
3).Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的
bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”;

4).Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。


实验环境:master:192.168.1.10   backup:192.168.1.20    主从尽量保持版本一样。

1.主服务器上

vim /etc/my.cnf

[mysqld]

server-id = 2

log-bin = /var/lib/mysql/mysql-bin 启用二进制文件

binlog-do-db = jasontest 指定数据库 不指定了 就是全部数据库

保存退出 重启数据库

service mysqld restart

2.在主服务器上建立账户并授权slave

建立bin_slave账号 密码:123456

mysql> grant replication slave on *.* to 'slave_bin'@'%'  identified by '123456';

查询master状态

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000008 |      498 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

好 主数据库操作完毕 接下来操作从数据库

3.Mysql从配置  192.168.1.20

vim /etc/my.cnf

[mysqld]

server-id = 30  注意id不能相同

log-bin=/var/lib/mysql/mysql-bin  启用二进制文件

保存退出 重启数据库: service  mysqld restart

4.设置同步源

change master to master_host='192.168.1.10' 主服务器ip

master_user='slave_bin'   

master_password='123456'

master_log_file='mysql-bin.000008’对应master的file

master_log_pos=403;  对应master的position


5.启用同步

start slave;

6.查看状态

show  slave status\G;


mysql> show  variables like '%log_error%';  错误日志路径


排错信息



0 0