**一、mysql主从方案主要作用**
读写分离,使数据库能支撑更大的并发,在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。发扬不同表引擎的优点。目前myisam表的查询速度比innodb略快,而写入并发innodb比myIsam要好。那么,我们可以使用innodb作为master,处理高并发写入,使用master作为slave,接受查询。或在myisam slave中建立全文索引,解决innodb无全文索引的弱点。热备,slave和master的数据“准实时”同步。
**二、安装MySQL**
两台服务器都按照安装过程,安装MySQL;
我的服务器信息
Master 192.168.3.91 3306
Slave 192.168.3.92 3306
**三、Master**
a. 修改Master的配置my.cnf,并重启mysql
server-id=1
log_bin=mysql-bin
service mysqld restart #重启
b. 查记录File与Position的值,此处的查询结果,将在下面Slave建立与Master联系时用到。
show master status;
![这里写图片描述][70]
show variables like "%log%";
看到这样的一行,log\_bin | ON;说明binlog已经开启了。
c.在master上为slave建立用户
grant replication slave, reload, super on *.* to 'backup'@'192.168.3.92' identified by '123456';
到此Master配置完毕!
**四、Slave**
a. 修改Slave的配置my.cnf,并重启mysql
server-id=2
log_bin=mysql-bin
service mysqld restart #重启
b.Slave建立与Master联系
登录执行
mysql> change master to
-> master_host='192.168.3.91', -> master_port=3306, -> master_user='backup', -> master_password='123456', -> master_log_file='mysql-bin.000001', -> master_log_pos=614;
c. 启动Slave
start slave; #启动
stop slave; #关闭
d. 查看slave状态
show slave status \G;
**五、测试**
用数据库连接工具同时连接Master和Slave,在Master里面创建数据库Test,并创建表user。此时可以看到Slave也出现了Test数据库和Test。向user表添加数据效果也一样。
[70]: /images/1603554818976.png