mysql主从同步原理+配置

原理:

每个从仅可以设置一个主。
主在执行sql之后,记录二进制log文件(bin-log)。
从连接主,并从主获取binlog,存于本地relay-log,并从上次记住的位置起执行sql,一旦遇到错误则停止同步。
从这几条Replication原理来看,可以有这些推论:
主从间的数据库不是实时同步,就算网络连接正常,也存在瞬间,主从数据不一致。
如果主从的网络断开,从会在网络正常后,批量同步。
如果对从进行修改数据,那么很可能从在执行主的bin-log时出现错误而停止同步,这个是很危险的操作。所以一般情况下,非常小心的修改从上的数据。
一个衍生的配置是双主,互为主从配置,只要双方的修改不冲突,可以工作良好。
如果需要多主的话,可以用环形配置,这样任意一个节点的修改都可以同步到所有节点。

可以应用在读写分离的场景中,用以降低单台MySQL服务器的I/O 
可以实现MySQL服务的HA集群
可以是1主多从,也可以是相互主从(主主)


MySQL主从服务的工作原理图:




配置文件:

#mysql主从同步

[主]:

vim /etc/my.cnf


[mysqld]

log-bin = mysql-bin

server-id = 1

#binlog-do-db=lottery    需要同步的数据库

#binlog-ignore-db=db1,db2    忽略同步的数据库


systemctl restart mysqld.service

mysql -uroot -pgameol32!

grant replication slave on *.* to 'mopgaming'@'xx.xx.xx.xx' identified by 'mopgaming';

grant replication slave on *.* to 'mopgaming'@'xx.xx.xx.xy' identified by 'mopgaming';

flush privileges;

flush tables with read lock; 

show master status;

unlock tables;在完成从数据库配置后,解锁。 


[从cp-mysql02]

vim /etc/my.cnf


    [mysqld]

    log-bin = mysql-bin

    server-id = 2


systemctl restart mysqld.service

mysql -uroot -pgameol32!

stop slave;

change master to master_host='xx.xx.xx.yy', master_user='mopgaming', master_password='mopgaming', master_log_file='mysql-bin.000004', master_log_pos=439;  

start slave;

show slave status\G;


[从cp-mysql02-2]

vim /etc/my.cnf

    

    [mysqld]

    log-bin = mysql-bin

    server-id = 3


systemctl restart mysqld.service

mysql -uroot -pgameol32!

stop slave;

change master to master_host='xx.xx.xx.yy',master_user='mopgaming',master_password='mopgaming',master_log_file='mysql-bin.000004',master_log_pos=439;

start slave;

show slave status\G;


查看数据库用户信息,授权信息,库信息:

show datebase;    查看库

show tables;     查看表

select * from mysql.user;    查看授权用户,授权主机,授予权限

select host,user from mysql.user; 查看授权用户和授权主机,针对用户对应的授权主机和授权信息

select * from mysql.db;    查看每个库对用户的授权情况,针对每个库对应的用户和授权信息。




参考文档:

1.2015-05-27MySQL主从配置

http://www.apelearn.com/bbs/thread-8024-1-1.html

2.MariaDB 主从复制

http://www.linuxidc.com/Linux/2015-02/113543.htm

3.MariaDB Proxy读写分离的实现

http://www.linuxidc.com/Linux/2014-05/101306.htm

4.主从同步出现一下错误:Slave_IO_Running: Connecting  

http://blog.163.com/ly_89/blog/static/18690229920111121725897/

5.Slave_SQL_Running: No mysql同步故障解决方法

http://kerry.blog.51cto.com/172631/277414

6.mysql模式:master/slave

http://blog.csdn.net/wyzxg/article/details/7333967




你可能感兴趣的:(mysql,报错,mariaDB,主从)