linux中mysql主从复制

数据库的读写分离--->最终体现是主从复制

  为什么要读写分离?

对于一个小型网站,可能单台数据库服务器就能满足需求,但是在一些大型的网站或者应用中,单台的数据库服务器可能难以支撑大的访问压力,升级服务器性能,成本又太高,必须要横向扩展。还有就是,单库的话,读、写都是操作一个数据库,数据多了之后,对数据库的读、写性能就会有很大影响。同时对于数据安全性,和系统的稳定性,也是挑战。

  数据库的读写分离的好处?

1. 将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈;

2. 主服务器进行写操作时,不影响查询应用服务器的查询性能,降低阻塞,提高并发;

3. 数据拥有多个容灾副本,提高数据安全性,同时当主服务器故障时,可立即切换到其他服务器,提高系统可用性;

MySQL复制描述

  主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。

下图就描述了一个多个数据库间主从复制与读写分离的模型(来源网络):

基于主从复制,1.数据库版本号一致,2.已初始化表 3.已启动
这里就不讲解linux安装mysql数据库过程,在我之前的博文中已有
https://blog.csdn.net/qq_39291929/article/details/78838095
本次只搭建一主一从服务器配置,不做一主多从,多主多从等配置策略,仅供参考
准备工作:

两台数据库服务器,分别是数据库1

1.修改主数据库master
vi   /etc/my.cnf
[mysqld]
log-bin=mysql-bin   //[必须]启用二进制日志
server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP最后一段 

2.修改从数据库slave
[mysqld]
log-bin=mysql-bin   //[不是必须]启用二进制日志
server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP最后一段 
3.重启两台服务器
service mysqld start
4.在主服务器上创建账号并授权从库slave
账号:mysql_test   密码:123456      创建用户并授权(关于创建用户和授权请看mysql安装博文),对于主从复制账号一般不采用root账号
在主数据库目录下(/usr/local/mysql/bin) 敲打如下命令: ./mysql -umysql_test -p, 回车后提示输入密码就可以进入mysql命令行中
 mysql>GRANT REPLICATION SLAVE ON *.* to 'mysql_test'@'%' identified by '123456';   //“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全 
5. 查看主服务器状态
mysql>show master status;
6.配置从数据库
mysql>change master to master_host='192.168.145.222',master_user='mysql_test',master_password='123456',
         master_log_file='mysql-bin.000004',master_log_pos=308;   //注意不要断开,308数字前后无单引号。
   Mysql>start slave;    //启动从服务器复制功能
7.查看从服务器复制状态
mysql> show slave status\G
8.主从服务器测试


猜你喜欢

转载自blog.csdn.net/qq_39291929/article/details/80631940