快速掌握MySQL的主从复制与读写分离
沉沙 2018-05-14 来源 : 阅读 961 评论 0

摘要:如果对MySQL数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低。为了提升业务系统性能,优化用户体验,可以通过主从复制(读写分离)来减轻主数据库的负载。希望本队对您学习MySQL数据库有所帮助。

为什么Mysql要做主从复制(读写分离)?
通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低
为了提升业务系统性能,优化用户体验,可以通过主从复制(读写分离)来减轻主数据库的负载
而且如果主数据库宕机,可快速将业务系统切换到从数据库上,可避免数据丢失。
主从复制(读写分离):一般需要两台及以上数据库服务器即可(一台用于写入数据,一台用于同步主的数据并用于数据查询操作)
局限性:
(1)、配置好主从复制之后,同一张表,只能对一个服务器写操作。如果在从上执行了写操作,而之后主也操作了这张表,或导致主从不同步;据说可以配置成主主复制
(2)、主数据库服务器当即,需要手动将业务切换到从数据库服务器,无法做到高可用性
数据库集群是由N台数据库服务器组成,数据的写入和查询是随机到任意一台数据库服务器的,其他数据库服务器会自动同步数据库的操作。

主从复制的实验:
两台装有mysql的linux服务器
两台设备上面已经安装好mysql,两台设备的ip地址分别为:192.168.40.128和192.168.40.131,是同一个内网的
mysql的版本选择是5.6
我实验的两台设备不是线上的设备,但是为了保险起见,在/etc/my.cnf这个目录中修改mysql的配置文件。
在主服务器的配置文件中添加如下的配置:

[mysqld]
server-id=1log-bin=mysqlmaster-bin.log
sync_binlog=1
innodb_buffer_pool_size = 512M
innodb_flush_log_at_trx_commit=1
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
lower_case_table_names=1
log_bin_trust_function_creators=1

然后重启mysql
在主服务器上创建用户主从复制的账户:

mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.40.128' IDENTIFIED BY 'repl';

主数据库锁表(禁止再插入数据以获取主数据库的二进制日志坐标):

FLUSH TABLES WITH READ LOCK;

然后再打开一个ssh会话,进入到mysql的命令行

show master status;

在这个例子中,二进制日志文件是mysqlmaster-bin.000001,位置是331,记录下这两个值,稍候要用到。
在主数据库上使用mysqldump命令创建一个数据快照

mysqldump -uroot -ptiange1003 -h127.0.0.1 -P3306 --all-databases  --triggers --routines --events >all.sql

解锁主数据库的锁表操作:

unlock tables;

在主服务器上使用scp命令将all.sql上传到从数据库的某个路径下

scp /root/all.sql root@192.168.40.128:/root/

然后在从数据库上将all.sql这个文件导入到数据库:

mysql -uroot -p -h127.0.0.1 -P3306 < all.sql

给从数据库设置复制的主数据库信息:mysql -u root -p

<em id="__mceDel">CHANGE MASTER TO MASTER_HOST='192.168.40.129',MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_LOG_FILE='mysqlmaster-bin.000001',MASTER_LOG_POS=331;  (其中的ip地址是主数据库服务器的ip地址)
start slave;
show slave status \G<br></em>

快速掌握MySQL的主从复制与读写分离 


Slave_IO_Running和Slave_SQL_Running这两个参数都是YES,说明配置成功。下面在主数据库上进行修改测试验证。
在主数据库里面做修改,然后在从数据库里面进行检验

 


本文由职坐标整理发布,欢迎关注职坐标MySQL频道,学习更多数据库知识!


本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程