首页 > 代码库 > mysql 读写分离,主从同步 M-S 搭建

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 搭建