最近刚看了mysql高级教程先写一篇关于mysql主从复制的配置
mysql优化的话后续补上
首先得有两台服务器安装了mysql本文以mysql5.6为例
在虚拟机上安装两台centos7的服务器,并且都安装了mysql
先修改mysql的配置 my.cnf
vim /etc/my.cnf
先配置主机文件
##mysql 主从复制的二进制文件
log-bin=mysql-bin
##忽略哪个库
binlog-ignore-db=mysql
每个slave只有一个master
且每个slave只能有唯一的服务器id也就是
server-id = 1
这样主机文件就配置好了
接着配置从机服务器
将原有配置的server-id = 1注释掉
打开下面的service-id=2的注释
这样简易版的配置就配置好了
还有一些配置参考
配完之后
重启mysql服务,主机从机都要重启
service mysql stop
service mysql start
用客户端连接进入主机mysql
##自己安装的时候的用户名密码
mysql -u root -p123456
之后在主机上建立帐户并授权slave
##建立帐户并授权slave
GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'192.168.1.104' IDENTIFIED BY '123456';
##刷新
FLUSH PRIVILEGES;
查看主机状态
show master status;
到此,主机这边已经弄好了,现在开始弄从机的,也用client登进mysql服务
执行这条sql
其中
HOST对应的是自己的主机ip
USER和PASSWORD对应的是自己刚刚建立的用户和密码
FILE对应的上在主机show master status查看来的FILE
POS对应的上在主机show master status查看来的Position
CHANGE MASTER TO MASTER_HOST='192.168.1.102',
MASTER_USER='zhangsan',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000009',
MASTER_LOG_POS=120;
之后执行
start slave;
查看slave状态 \G以键值对的格式输出,方便查看
show slave status\G;
主要查看slave_io_running跟SLAVE_SQL_RUNNING是否都为yes
现在已经都已经准备好了
查看从机库
show databases;
现在开始在主机上建库与建表,并且插入数据,从机会自动复制,说明已经配置好了主从复制
create database testDB1;
create table test(id int not null,name varchar(20));
insert into test values(1,'test');
select * from test;
现在开始查看从机
多出了testdb1这个库
查看数据是否一致
数据一致,此时已经完成主从复制了
关闭从机复制 执行
stop slave;
此时这两个数均为NO
到此已经完成了MYSQL的主从复制