Mysql的主从分离配置;
你用过中从分离吗?
我:用过;
自己配置过吗?
我: 这些不是运维的做的吗,感觉很糟鄙视;
然后自己去百度了,弄了两个虚拟机,下面是配置的笔记
准备的虚拟机
centos6.5 Apache+PHP+MySQL
ip分别为 192.168.44.129(主),192.168.44.130(从)
原理:mysql要做到主从复制,其实依靠的是二进制日志,即:假设主服务器叫A,从服务器叫B;主从复制就是
B跟着A学,A做什么,B就做什么。那么B怎么同步A的动作呢?现在A有一个日志功能,把自己所做的增删改查的动作
全都记录在日志中,B只需要拿到这份日志,照着日志上面的动作施加到自己身上就可以了。这样就实现了主从复制。
首先在主虚拟机上修改配置
#vi /etc/my.cnf
log-bin=mysql-bin //将mysql二进制日志取名为mysql-bin
binlog_format=mixed //二进制日志的格式,
server-id=129 //为服务器设置一个独一无二的id便于区分,这里使用ip地址的最后一位充当server-id
重启mysql service mysqld restart
进入从服务器,配置从服务器的my.cnf,重复步骤1即可,
唯一的区别是,server-id要改成从服务器的ip尾位,即server-id=130;其他两项是一样的,保存,并重启mySQL;
进入主服务器的数据库
mysql -uroot -proot
然后主服务器输入
GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY 'root';
查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变)
设置从服务器
进入从服务器mysql
命令: # mysql -u root -proot
关闭slave(如果你以前配置过主从的话,一定要先关闭)
命令:stop slave;
输入
change master to master_host ="192.168.44.129", master_user = "root", master_password = "root", master_log_file = "mysql-bin.000001", master_log_pos = 247;
先在从服务器配置完成,启动从服务器:
命令: start slave;
查看是否配置成功:
命令: show slave status\G;
这样就是成功了;
主服务器数据插入数据
从服务器数据
就是这么简单的完成了