mysql 读写分离,主从同步 M-S 搭建

Posted 于光远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 读写分离,主从同步 M-S 搭建相关的知识,希望对你有一定的参考价值。

主机:

[root@ygy130 ~]# mysql -usystem -p123456

mysql> create database HA;

mysql> use HA;

mysql> create table T1(id int,name varchar(20));

service mysqld stop     停库锁表

配置my.cnf:

vim /etc/my.cnf

vim /etc/my.cnf

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

server-id       = 1   #本机数据库ID 标示

binlog-do-db=HA #可以被从服务器复制的库。二进制需要同步的数据库名

binlog-ignore-db=mysql  #不可以被从服务器复制的库

重启mysql:

service mysqld restart

[root@ygy130 ~]# mysql -usystem -p123456

授权:

mysql> grant replication slave on *.* to slave@192.168.31.131 identified by "123456";

mysql> flush privileges;

查看状态信息:
mysql> show master status;

mysql> show binlog events\\G

 

同步前要保证两台机器数据一致。

[root@ygy130 ~]# mysqldump -usystem -p123456 HA >HA.sql

[root@ygy130 ~]# scp HA.sql root@192.168.31.131:/root/

 

从机:

[root@yu131 ~]# mysql -usystem -p123456

mysql> create database HA;

mysql -usystem -p123456 HA<HA.sql

修改从服务器配置文件:

[root@yu131 ~]# vim /etc/my.cnf
server-id = 2

重启mysqld

[root@yu131 ~]# service mysqld restart

[root@yu131 ~]# mysql -usystem -p123456

mysql>change master to master_host=\'192.168.31.130\',master_user=\'slave\',master_password=\'123456\';

mysql> start slave; 

mysql> show slave status\\G  查看状态

 

Slave_IO_Running :一个负责与主机的io通信
Slave_SQL_Running:负责自己的slave mysql进程
再到主服务器上查看状态:
mysql> show processlist \\G

 

主机:

mysql> insert into T1 values(1,\'ccc\');
Query OK, 1 row affected (0.01 sec)

mysql> select * from T1;
+------+------+
| id | name |
+------+------+
| 1 | qqq |
| 1 | ccc |
+------+------+
2 rows in set (0.00 sec)

 从机:

mysql> select * from T1;
+------+------+
| id | name |
+------+------+
| 1 | qqq |
| 1 | ccc |

 

如果遇到主从不同步,看一下主从bin-log的位置,然后再同步。

从服务器执行MySQL命令下:

mysql> slave stop;             #先停止slave服务

mysql> change master to master_log_file=\'mysqllog.000004\' ,master_log_pos=106;

#根据上面主服务器的show master status的结果,进行从服务器的二进制数据库记录回归,达到同步的效果

mysql>slave start;                      #启动从服务器同步服务

mysql> show slave status\\G;          #用show slave status\\G;看一下从服务器的同步情况

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果都是yes,那代表已经在同步

 

以上是关于mysql 读写分离,主从同步 M-S 搭建的主要内容,如果未能解决你的问题,请参考以下文章

Mysql主从同步 读写分离

mysql1.6(主从同步,数据读写分离,mysql优化)

MHA+ProxySQL,mysql的高可用集群+读写分离GTID主从复制

MySQL主从同步+读写分离

mysql数据库读写分离,主从同步实现方法

MySQL主从复制与读写分离