实验环境:

DB1:172.16.1.100

DB2:172.16.1.101

VRRIP:172.16.1.99

步骤:

yum -y install mysql

1。修改DB1的mysql配置文件

  1. server-id = 2 #DB1和DB2的id 必须不同
  2. log-bin=mysql-bin #开启mysql的二进制日志功能
    read_only=1 #定义主从复制,只读模式
  3. relay-log = mysql-relay-bin #定义中继日志的命名格式
  4. replicate-wild-ignore-table=mysql.% #不复制的数据库或表
  5. replicate-wild-ignore-table=test.% #不复制的数据库或表
    replicate-wild-ignore-table=information_schema.% #不复制的数据库或表

2. 在DB1创建复制用户并授权

  1. grant replication slave on *.* to "chen"@"172.16.1.101" identified by "123456";
    show master status;
    mysql> show master status;
    +------------------+----------+--------------+------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000006 | 106         |                    |           |
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)

3.在DB2的mysql库将DB1设为自己的主服务器

  1. mysql > change master to \
  2. master_host="172.16.1.100",
  3. master_user="chen",
  4. master_password="123456",
  5. master_log_file="mysql-bin.000006",
  6. master_log_pos=106;

4.然后运行

  1. mysql > start slave;

5.查询DB2运行状态

  1. mysql > show slave status;
  2. mysql> show slave status\G;
  3. *************************** 1. row ***************************
  4. Slave_IO_State: Waiting for master to send event
  5. Master_Host: 172.16.1.100
  6. Master_User: chen
  7. Master_Port: 3306
  8. Connect_Retry: 60
  9. Master_Log_File: mysql-bin.000009
  10. Read_Master_Log_Pos: 106
  11. Relay_Log_File: mysql-relay-bin.000021
  12. Relay_Log_Pos: 251
  13. Relay_Master_Log_File: mysql-bin.000009
  14. Slave_IO_Running: Yes
  15. Slave_SQL_Running: Yes
  16. Replicate_Do_DB:
  17. Replicate_Ignore_DB:
  18. Replicate_Do_Table:
  19. Replicate_Ignore_Table:
  20. Replicate_Wild_Do_Table:
  21. Replicate_Wild_Ignore_Table: mysql.%,test.%,information_schema.%
  22. Last_Errno: 0
  23. Last_Error:
  24. Skip_Counter: 0
  25. Exec_Master_Log_Pos: 106
  26. Relay_Log_Space: 551
  27. Until_Condition: None
  28. Until_Log_File:
  29. Until_Log_Pos: 0
  30. Master_SSL_Allowed: No
  31. Master_SSL_CA_File:
  32. Master_SSL_CA_Path:
  33. Master_SSL_Cert:
  34. Master_SSL_Cipher:
  35. Master_SSL_Key:
  36. Seconds_Behind_Master: 0
  37. Master_SSL_Verify_Server_Cert: No
  38. Last_IO_Errno: 0
  39. Last_IO_Error:
  40. Last_SQL_Errno: 0
  41. Last_SQL_Error:
  42. 1 row in set (0.00 sec)
  43.  
  44. ERROR:
  45. No query specified

6.然后再DB1和DB2配置上面的配置

7.在DB1和DB2上下载keepalived

yum install keepalived

8.配置keepalived的配置文件

[root@db1 ~]# vim /etc/keepalived/keepalived.conf

  1. [root@db2 ~]# vim /etc/keepalived/keepalived.conf
  2. auth_type PASS
  3. auth_pass 1111
  4. }
  5. virtual_ipaddress {
  6. 172.16.1.99
  7. }
  8. }
  9. virtual_server 172.16.1.99 3306 {
  10. delay_loop 2
  11. #lb_algo rr #LVS算法,用不到,我们就关闭了
  12. #lb_kind DR #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
  13. persistence_timeout 50 #同一IP的连接60秒内被分配到同一台真实服务器
  14. protocol TCP
  15. real_server 172.16.1.101 3306 { #检测本地mysql,backup也要写检测本地mysql
  16. weight 3
  17. notify_down /usr/local/keepalived/mysql.sh #当mysq服down时,执行此脚本,杀死
  18. keepalived实现切换
  19. TCP_CHECK {
  20. connect_timeout 3 #连接超时
  21. nb_get_retry 3 #重试次数
  22. delay_before_retry 3 #重试间隔时间
  23. }
  24. }
  25. "/etc/keepalived/keepalived.conf" 40L, 1292C written
  26. [root@db2 ~]# vim /etc/keepalived/keepalived.conf
  27. auth_type PASS
  28. auth_pass 1111
  29. }
  30. virtual_ipaddress {
  31. 172.16.1.99
  32. }
  33. }
  34. virtual_server 172.16.1.99 3306 {
  35. delay_loop 2
  36. #lb_algo rr #LVS算法,用不到,我们就关闭了
  37. #lb_kind DR #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
  38. persistence_timeout 50 #同一IP的连接60秒内被分配到同一台真实服务器
  39. protocol TCP
  40. real_server 172.16.1.101 3306 { #检测本地mysql,backup也要写检测本地mysql
  41. weight 3
  42. notify_down /usr/local/keepalived/mysql.sh #当mysq服down时,执行此脚本,杀死
  43. keepalived实现切换
  44. TCP_CHECK {
  45. connect_timeout 3 #连接超时
  46. nb_get_retry 3 #重试次数
  47. delay_before_retry 3 #重试间隔时间
  48. }
  49. }

8./usr/local/keepalived/mysql.sh

  

  1. #!/bin/bash
  2. #function:监视mysql主从服务器状态
  3. #written by:alec
  4. #
  5. user=mysql
  6. host=172.16.1.150
  7. password=123
  8. #
  9. check_mysql() {
  10. IO=`/usr/local/mysql/bin/mysql -u$user -p$password -h$host -e 'show slave status\G'|grep IO_Running|tr -s ' '|awk '{print $2}'|grep Yes|wc -l`
  11. SQL=`/usr/local/mysql/bin/mysql -u$user -p$password -h$host -e 'show slave status\G'|grep SQL_Running|tr -s ' '|sed -n '1p'|awk '{print $2}'|grep Yes|wc -l`
  12. if [ "$IO" -eq 1 ]&&[ "$SQL" -eq 1 ]
  13. then
  14. service keepalived status|grep pid
  15. if [ $? -eq 0 ]
  16. then
  17. echo "服务已经启动"
  18. else
  19. service keepalived start
  20. if [ $? -eq 0 ]
  21. then
  22. echo "服务启动成功"
  23. else
  24. echo "服务启动失败"
  25. fi
  26. fi
  27. else
  28. service keepalived status|grep pid
  29. if [ $? -eq 0 ]
  30. then
  31. service keepalived stop
  32. if [ $? -eq 0 ]
  33. then
  34. echo "服务关闭成功"
  35. else
  36. echo "服务关闭失败"
  37. fi
  38. else
  39. echo "服务已经关闭"
  40. fi
  41. fi
  42. }
  43. main(){
  44. check_mysql
  45. }
  46. main;

systemctl start keepalived

------------------------------------

错误一:database doesn't exist' on query. Default database

解决:

1.stop slave;

2.set global sql_slave_skip_counter=1;

3.start slave;

 

构建高性能的MYSQL数据库系统的更多相关文章

  1. 构建高性能的MYSQL数据库系统-主从复制

    实验环境: DB1:172.16.1.100 DB2:172.16.1.101 VRRIP:172.16.1.99 步骤: yum -y install mysql 1.修改DB1的mysql配置文件 ...

  2. [转]构建高性能MySQL体系

    来源:http://www.yunweipai.com/archives/21232.html 构建高性能MySQL系统涵盖从单机.硬件.OS.文件系统.内存到MySQL 本身的配置,以及schema ...

  3. 如何构建高性能MySQL索引

    本文的重点在于如何构建一个高性能的MySQL索引,从中你可以学到如何分析一个索引是不是好索引,以及如何构建一个好的索引. 索引误区 多列索引 一个索引的常见误区是为每一列创建一个索引,如下面创建的索引 ...

  4. MySQL全面瓦解24:构建高性能索引(策略篇)

    学习如果构建高性能的索引之前,我们先来了解下之前的知识,以下两篇是基础原理,了解之后,对面后续索引构建的原则和优化方法会有更清晰的理解: MySQL全面瓦解22:索引的介绍和原理分析 MySQL全面瓦 ...

  5. MySQL全面瓦解25:构建高性能索引(案例分析篇)

    回顾一下上面几篇索引相关的文章: MySQL全面瓦解22:索引的介绍和原理分析 MySQL全面瓦解23:MySQL索引实现和使用 MySQL全面瓦解24:构建高性能索引(策略篇) 索引的十大原则 1. ...

  6. 【读书笔记】2016.12.10 《构建高性能Web站点》

    本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 ...

  7. 《构建高性能web站点》随笔 无处不在的性能问题

    前言– 追寻大牛的足迹,无处不在的“性能”问题. 最近在读郭欣大牛的<构建高性能Web站点>,读完收益颇多.作者从HTTP.多级缓存.服务器并发策略.数据库.负载均衡.分布式文件系统多个方 ...

  8. 构建高性能WEB站点笔记三

    构建高性能WEB站点笔记三 第10章 分布式缓存 10.1数据库的前端缓存区 文件系统内核缓冲区,位于物理内存的内核地址空间,除了使用O_DIRECT标记打开的文件以外,所有对磁盘文件的读写操作都要经 ...

  9. 构建高性能WEB站点笔记二

    构建高性能WEB站点笔记 因为是跳着看的,后面看到有提到啥epoll模型,那就补充下前面的知识. 第三章 服务器并发处理能力 3.2 CPU并发计算 进程 好处:cpu 时间的轮流使用.对CPU计算和 ...

随机推荐

  1. [Linux] Linux常用文本操作命令整理

    简单的总结一下常用的一些实用的Linux文本操作命令,包括wc(统计).cut(切分).sort(排序).uniq(去重).grep(查找).sed(替换.插入.删除).awk(文本分析). 1.统计 ...

  2. Netty 实现聊天功能

    Netty 是一个 Java NIO 客户端服务器框架,使用它可以快速简单地开发网络应用程序,比如服务器和客户端的协议.Netty 大大简化了网络程序的开发过程比如 TCP 和 UDP 的 socke ...

  3. phalcon3.0.1默认多模块生成的几个bug

    发现用Phalcon DevTools (3.0.0)生成的多模块有一些bug: 默认的路由定义,字符串替换有误 原代码// $namespace = str_replace('Module','Co ...

  4. word20161224

    V.34 V.90 validation / 验证 value entry / 值项 variable / 变量 variable bit rate, VBR / 可变传输率 VBR, variabl ...

  5. 微信小程序常见错误及基本排除方法

    也接触了不少人解决问题的过程里,有一些比较难以排查的可能性列举在这,方便大家看一下:   也欢迎大家把自己常用的排除方法列举在这,一起互相学习探讨!1:ES6:使用es6可能导致安卓端真机调试时很多问 ...

  6. gulp自动刷新和css、js压缩

    之前搭建过Grunt,但是用起来有点繁琐,后来有人跟我说gulp更多简单.所以今天又搭建一个gulp.在使用gulp前应该有nodeJs环境,安装完nodejs后,就可以开始gulp的搭建了. 先新建 ...

  7. 51Nod 算法马拉松21(迎新年)

    这次打算法马拉松是在星期五的晚上,发挥还算正常(废话,剩下的题都不会= =). 讲讲比赛经过吧. 8:00准时发题,拿到之后第一时间开始读. A配对,看上去像是二分图最大权匹配,一看范围吓傻了,先跳过 ...

  8. 【Network】OVS、VXLAN/GRE、OVN等 实现 Docker/Kubernetes 网络的多租户隔离

    多租户隔离 DragonFlow与OVN | SDNLAB | 专注网络创新技术 Neutron社区每周记(6.25~7.6)| OVS将加入Linux基金会?OVN或抛弃ovsdb? | Unite ...

  9. Docker - 创建Swarm

    1. 准备 我们需要: Docker Engine 1.12 or later installed the IP address of the manager machine open ports b ...

  10. - > code vs 3038 3n+1问题(递归)

    3038 3n+1问题  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 白银 Silver 题解   题目描述 Description 3n+1问题是一个简单有趣而又没有解决的数 ...