• [首页]
  • [文章]
  • [教程]
布布扣,bubuko.com
  •  
  • 首页
  • Web开发
  • Windows开发
  • 编程语言
  • 数据库技术
  • 移动平台
  • 系统服务
  • 微信
  • 设计
  • 布布扣
  • 其他
  • 数据分析
  •  
首页 > 数据库技术 > 详细

mysql主从同步与读写分离

时间:2019-04-22 22:52:31      阅读:185      评论:0      收藏:0      [点我收藏+]

技术分享图片

为了解决数据库服务的高可用问题以及负载均衡问题,

1正常情况下可以互为主从,均衡分担数据流量,

2防止数据库服务器在宕机的情况下可以顺利切换到正常的数据库服务器,减少公司的客户流量损失故公司需要搭建数据库集群以备不时之需。

一主一从

首先准备两台已安装好数据库的服务器:分别为A为主服务器和B从服务器

第一步初始化数据库:

1,备份A数据库服务器中所有的数据

[root@es1 ~]#mysql -uroot -p

mysql> reset master    #重置binlog日志

mysql> quit             #退出数据库

[root@es1 ~]# mysqldump -uroot -p --all-databases >/root/test.sql

[root@es1 ~]# ls         #查看备份结果

2在从库B中导入备份的数据

登录B服务器

[root@es2 ~]#mysql -uroot -p

mysql>drop database text;          # 清除所有测试数据

[root@es1 ~]# scp /root/mytest.sql root@192.168.12.118:/root/   #将数据库A中备份的数据上传至B数据库
root@192.168.12.118‘s password:
mytest.sql 100% 790 418.8KB/s 00:00

mysql -u root -p < /mytest.sql  将数据备份至B数据库,

第二部配置主从数据库

在AB数据库服务器数据一致,binlog还原点一致的情况下进行配置

1:配置主服务器,修改/etc/my.cnf

[root@es1 ~]# vim /etc/my.cnf

log-bin=mysql-bin
server_id=1

...

[root@es1 ~]# systemctl restart mysqld  #重启数据库

2:新建一个用户授予器复制权限允许其从从服务器slave访问

mysql> grant select replication slave on *.* to ‘replicater‘@‘192.168.12.%‘ identified by ‘pwd123‘;

mysql> show master status\G  #查看主服务器状态 

技术分享图片

注意 :当在授予权限时出现密码安全问题时

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这个就是初始设置密码策略的问题:先查看密码策略

mysql> show variables like ‘validate_password%‘;
技术分享图片

解决方案:

mysql> set global validate_password_mixed_case_count=2;  

关于 mysql 密码策略相关参数;
1)、validate_password_length  固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;

 

3 配置从服务器

vi /etc/my.cnf

[client]
default-character-set=utf8 #数据库客户端编码问题
[mysqld]
character-set-server=utf8   #数据库服务端编码问题
log-bin=mysql2-bin            #启用bin-log日志
server_id=2
binlog_format=MIXED        #指定日志格式

[root@es2 ~]# systemctl restart mysqld

[root@es2 ~]# mysql -uroot -p

mysql> change master to master_host=‘192.168.12.119‘,     #指定主服务器的ip地址
    ->  master_user=‘replicater‘,                #指定主库授权用户用户名
    ->  master_password=‘12345678‘,               #授权用户密码
    ->  master_log_file=‘mysql1-bin.0000001‘,        #主库bin-log日志
    ->  master_log_pos=123;                   #指定备份节点
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> START SLAVE; //启动复制

[root@es2 ~]# ls -lh /var/lib/mysql/        注 :master.info  ,MASTER 主服务器的设置信息自动存为 master.info 文件

技术分享图片

mysql> show slave status\G

技术分享图片

无论是一主一从,一主多从,互为主从,其原理都是从库指定主库

注意点,就是主从库必须要一致才能同步,否则会受中继日志和bin-log日志中的pos点的影响而无法同步,配置主从同步时4关闭防火墙。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2017-12-30 18:51:10
 

 

mysql主从同步与读写分离

原文:https://www.cnblogs.com/liucsxiaoxiaobai/p/10753589.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
  • 2021/09/28 scripts  2022-05-27
  • vue自定义全局指令v-emoji限制input输入表情和特殊字符  2022-05-27
  • 9.26学习总结  2022-05-27
  • vim操作  2022-05-27
  • 深入理解计算机基础 第三章  2022-05-27
  • C++ string 作为形参与引用传递(转)  2022-05-27
  • python 加解密  2022-05-27
  • JavaScript-对象数组里根据id获取name,对象可能有children属性  2022-05-27
  • SQL语句——保持现有内容在后面增加内容  2022-05-27
  • virsh命令文档  2022-05-27
教程昨日排行
更多>
  • 1.list.reverse()
  • 2.Django Admin 管理工具
  • 3.AppML 案例模型
  • 4.HTML 标签列表(功能排序)
  • 5.HTML 颜色名
  • 6.HTML 语言代码
  • 7.jQuery 事件
  • 8.jEasyUI 创建分割按钮
  • 9.jEasyUI 创建复杂布局
  • 10.jEasyUI 创建简单窗口
友情链接
汇智网   PHP教程   插件网  
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!