最近公司的一个项目,需要用到mysql,考虑到数据库安全问题,需要两台mysql,一台作为主服务,一台备份,主服务可以执行读写操作,从服务只能执行读操作,这样读写分离后,可以大大提高服务的性能。下面直接上干货,怎么搭建的很简单:
1,首先要明白mysql主从配置的原理,然后在去配置,就事半功倍了,原理也很简单,mysql底层有一个机制,就是每次执行完sql语句后,可以通过开启二进制日志,这样就可以把每次执行的语句报存下来,从服务再读取它的日志,重新执行一遍:
2.配置主服务器:
vi /etc/my.cnf
给从服务器配一个slave账号,密码
GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY 'xxx';
Query OK, 0 rows affected (0.00 sec)
3,配置从服务器
登陆进从服务器;
1, stop slave;
2, CHANGE MASTER TO MASTER_HOST='xxxxx',MASTER_USER='slave',MASTER_PASSWORD='111111', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=319;
3, start slave;
最后,用命令 show slave status\G;
能看到箭头指的变为:yes,就表示配置成功。
总结,这里有2个点要注意,一是配置从服务器的时候,日志开始要和主服务器一致,二是myslq 默认主从服务器开始是一样的,如果主数据库操作了一条语句比如删除了一条从库没有的数据,这个时候从库就会执行语句报错,不在与主库同步。这点要注意点。