本文讲解mysql的集群搭建

文章目录

  • 1. docker安装并启动三台mysql
  • 2. 创建基础库并设置可访问用户
  • 3. 主从配置
    • 3.1 主服务器配置
    • 3.2 从服务器配置

1. docker安装并启动三台mysql

docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD="123456" \--privileged=true -v /c/Users/Public/conf/my.cnf:/etc/mysql/my.cnf  \--name=mysql1  mysql:5.6.17

参数说明:
-d 后台运行容器并打印容器id
-p 指定端口映射 主机:容器
-e 设置环境变量
–privileged 是否容器有足够的权限(root)
-v 指定目录映射
–name 指定容器名称

docker exec -it mysql1 /bin/bash

第二台

docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD="123456" \--privileged=true -v /c/Users/Public/conf/my.cnf:/etc/mysql/my2.cnf  \--name=mysql1  mysql:5.6.17

第三台

docker run -d -p 3309:3306 -e MYSQL_ROOT_PASSWORD="123456" \--privileged=true -v /c/Users/Public/conf/my.cnf:/etc/mysql/my3.cnf  \--name=mysql1  mysql:5.6.17

2. 创建基础库并设置可访问用户

分别在三台mysql上建立test数据库

create database test character set utf8 collate utf8_general_ci;

设置mysql用户及权限

grant all privileges  on test.* to culter@'%' identified by "123321";
flush privileges;

3. 主从配置

主:192.168.0.97:3306
从:192.168.99.100:3307
192.168.99.100:3308
192.168.99.100:3309

3.1 主服务器配置

# 主从复制需要开启binglog
log-bin=mysql-bin# 二进制格式推荐 mixed
binlog_format=mixed# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id   = 1

设置复制权限:

grant replication slave on *.* to 'culter'@'%' identified by '123321';

如果指定数据库 会报错:

mysql> grant replication slave on test.* to 'culter'@'%' identified by '123321';ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
mysql> grant replication slave on *.* to 'culter'@'%' identified by '123321';
Query OK, 0 rows affected (0.00 sec)

展示主服务器状态:

show master status;


下面的从库配置会使用到:

3.2 从服务器配置

step 1 更改配置文件

分别在从服务器中的my.cnf中添加 将id分别改为 2,3,4

[mysqld]log-bin=mysql-bin
binlog_format=mixed
server-id = 2

step 2 配置同步主库源

然后我们对三台机器分别设置

change master to master_host='192.168.0.97',master_user='culter',master_password='123321',master_log_file='mysql-bin.000003',master_log_pos=204;

完整语法:

 CHANGE MASTER TOMASTER_HOST='192.168.0.97',MASTER_USER='culter',MASTER_PASSWORD='123321',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001',      MASTER_LOG_POS=325,MASTER_AUTO_POSITION=0;

报错:

ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.

注意:由于我使用的docker安装的,并指定了my.cnf的映射目录,导致 /etc/mysql/my.cnf 无论怎样
更改权限,都无法加载,会报如下错误(必须进入mysql对应的容器内部执行命令才能看到)

root@8251dd588c9c:/usr/local/mysql# mysql -uculter -p
Warning: World-writable config file '/etc/mysql/my.cnf' is ignored

这个错误的原因是因为mysql认为my.cnf的操作权限是777,任何人都能操作,所以存在安全隐患,就直接忽略了这个配置文件。
但是由于我们无法更改,只能新建一个 /etc/my.cnf 然后重新加入上面的内容,并重启容器

命令执行顺序

docker exec -it mysql1 /bin/bash
vim /etc/my.cnf

内容

[mysqld]log-bin=mysql-bin
binlog_format=mixed
server-id = 2

重启

docker restart mysql1

step 3 启动主从复制

mysql> slave start;

报错:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'slave start' at line 1
mysql> start slave ;
Query OK, 0 rows affected (0.01 sec)

根据部分mysql版本的原因,可能会出现命令的不一致,需要更改命令为:

mysql> start slave;

码字不易,打赏一下小弟吧

mysql集群搭建及性能调优之一(集群搭建)相关推荐

  1. 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》...

    优化Linux内核参数/etc/sysctl.conf  sysctl  <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...

  2. 循序渐进linux——基础知识、服务器搭建、系统管理、性能调优、集群应用_第四讲,Proxmox部署与应用...

    大家好!今天小编继续给大家介绍Ceph存储系统第四讲<Proxmox部署与应用>.在前几讲给大家介绍了Ceph存储系统基础知识,大家应该已经对Ceph有个大概了解,当然了解归了解,在实际工 ...

  3. 【网站架构】Nginx负载均衡宕机怎么办?Nginx性能调优、集群、高可用方案

    ​ 大家好,欢迎来到停止重构的频道. 本期,我们讨论Nginx的性能调优. Nginx一般是作为网站系统的反向代理或负载均衡,但这里有一个问题,负载均衡可以绑定多个后端服务器. 一个后端服务器宕机后, ...

  4. linux mysql io压力大_MySQL性能调优(四) Linux 磁盘IO

    1. IO处理过程 磁盘IO经常会成为系统的一个瓶颈,特别是对于运行数据库的系统而言.数据从磁盘读取到内存,在到CPU缓存和寄存器,然后进行处理,最后写回磁盘,中间要经过很多的过程,下图是一个以wri ...

  5. linux从新手到高手,1.3 养成良好的Linux操作习惯免费阅读_循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用免费全文_百度阅读...

    看出点玄机了吗?在上例中,其实"/etc/*"就代表了/etc目录下的所有文件以及子目录,而这刚好是zip命令"-r"选项完成的功能. 5)将/opt/etc. ...

  6. MySQL教程——4 高级篇(性能调优、锁)

    1. 应用优化 前面章节,我们介绍了很多数据库的优化措施.但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力. 1.1 使用连接池 对于访问数据库 ...

  7. 《MySQL管理之道:性能调优、高可用与监控》china-pub首发!

    预售网址:http://product.china-pub.com/3769079 一年多的辛苦终于出版了,感谢为我写序的朋友们!希望各位读者多多支持,如有任何问题,请直接联系我. 本文转自hcymy ...

  8. 千亿级数据量kafka集群性能调优实战总结

    1.(千亿级kafka集群性能调优)集群信息 一个kafka集群,40台broker,基于Ambari,hdp管理(ambari_v2.5,hdp_v2.6) 10台broker配置5块3T盘 30台 ...

  9. mysql性能监控 调优_MySQL管理之道:性能调优、高可用与监控(第2版)

    MySQL管理之道:性能调优.高可用与监控(第2版) 作者:贺春旸 著 出版日期:2016年08月 文件大小:71.36M 支持设备: ¥50.00在线试读 适用客户端: 言商书局 iPad/iPho ...

最新文章

  1. python dataframe 计算上下两行的差值_用Python进行数据清洗!
  2. js 中转换成list集合_java stream中Collectors的用法
  3. MacBook开机自动连接iPad好评
  4. Pthreads mutex vs Pthreads spinlock
  5. webflux系列--reactor功能
  6. WZK的排名(jzoj 1995)
  7. php里的stdclass,PHP中的stdClass是什么?
  8. leetcode 100.Same Tree
  9. 第八课 魔棒 画笔工具和铅笔工具
  10. ASP+XML+JavaScript实现动态无限级联动菜单
  11. iso图像测试卡_走进真4K |图像质量测试有哪些“硬”标准?
  12. JsonCpp的使用
  13. scrum 12.8
  14. 一款HP的本本大家帮忙看一下
  15. Java函数式编程详解
  16. 秋意浓(2018.9.28)
  17. 用python画好看的圣诞树
  18. vue.js:597 [Vue warn]: Error in callback for watcher dat: TypeError: Cannot read property 'call'
  19. 王怀南:从谷歌之父到育儿专家
  20. 研发人员绩效考核工作失败的几方面表现

热门文章

  1. JAVA 单张牌出牌逻辑 实现斗地主
  2. openlayer加载天地图 并设置地图颜色为科技蓝
  3. 什么是AR增强现实技术
  4. Angr 从入门到放弃(二)
  5. 新网站如何提交链接让百度更快速的收录
  6. 一天一道ctf 第25天(md5强碰撞)
  7. 使用telnet命令检测端口是否正常报错“telnet: connect to address 192.168.88.132: Connection refused“
  8. DDPG中的Ornstein-Uhlenbeck过程怎么理解
  9. 吸烟者问题——进程同步
  10. 个人简历--软件工程师 4年