首页 > 代码库 > mysql主从配置及其读写分离

mysql主从配置及其读写分离

mysql主从配置意思就是一个主mysql服务器,一个从mysql服务器,一共要用到两台服务器。主服务器新增一个账号专门让从服务器来访问同步工作,主从配置完成后,主服务器主要就是新增和update操作,从服务器主要是查询工作。

主服务器ip为:192.168.31.11

从服务器ip为:192.168.31.12

create user slave; //创建新用户
//slave用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.31.12,这个配置是指明slave用户所在服务器。
grant replication slave on *.* to slave@192.168.31.12 identified by 111111;
flush privileges;

 在主服务器的/etc/my.cnf配置文件中配置以下信息

server-id=11   //给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
log-bin=master-bin
log-bin-index=master-bin.index

重启一下mysql,运行一下show master status;看看主服务器的状态是否正常

技术分享

 然后配置从服务器的mysql配置文件,修改完成之后然后重启mysql

log_bin           = mysql-bin
server_id         = 12
relay_log         = mysql-relay-bin
log_slave_updates = 1
read_only         = 1
//server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的master,必须设置bin_log。在这里,我们开启了二进制日志,而且显示的命名(默认名称为hostname,但是,如果hostname改变则会出现问题)。
//relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)。
//有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。所以,尽量使用read_only,它防止改变数据(除了特殊的线程)。但是,read_only并是很实用,特别是那些需要在slave上创建表的应用。

 接下来就是链接主服务器了

change master to master_host=192.168.31.11, //Master 服务器Ip
master_port=3306,
master_user=repl,
master_password=mysql, 
master_log_file=master-bin.000002,//Master服务器产生的日志
master_log_pos=107;

查看从服务器的状态 show slave status;

技术分享

 

mysql主从配置及其读写分离