Mysql主从复制教程

1.安装mysql(安装步骤跳过)
2.配置密码。(如果忘记密码或者误操作删除了root用户,使用如下命令,没有忘记就跳到3)
将skip-grant-tables放在/etc/my.cnf里的[mysqld]下的第一行,可免密码登录,然后更新或者插入user表数据。
set password=password("root");(设置新密码)
CREATE USER 'replication'@'192.168.3.212' IDENTIFIED BY 'root';
update user set Host='%',select_priv='y', insert_priv='y',update_priv='y', Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';
flush privileges;刷新MySQL的系统权限相关表。

3.主从数据库只是配置而已,不需要额外代码。但是如果配置不好,会花很长时间反复修改。
4.开始正题。
主从更新就是主库增删改查的时候,从库也会进行操作,而且是读取bin日志进行操作。
主库需要添加一个用户(为的是不让从用root账户,用别的用户更安全)供从访问。

5.关闭防火墙(更好的办法是将3306端口放入防火墙计划,/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT )。
6.很多文件需要给相应的权限。

7.启动:/usr/local/mysql/support-files/mysql.server start或者$ service mysql.server start。
8.启动mysql:mysql -u root -p回车 输入密码(root)。

9.设置可远程登录
mysql> use mysql;
mysql> update user set host = '%' where user ='root';
mysql> flush privileges;

10.master配置my.cnf
vi /etc/my.cnf
在[mysqld]下加
log-bin=mysql-bin
server-id=1

///////
11.CREATE USER 'replication'@'192.168.3.128' IDENTIFIED BY 'root';(给从机使用的用户名和密码)
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.3.128';(给予相应权限)
flush privileges;刷新MySQL的系统权限相关表。
show master status;//显示主库状态

12.配置slave
vi /etc/my.cnf
在[mysqld]下加
log-bin=mysql-bin
server-id=2 //(总之slave之间的id不能一样)
START SLAVE; //开启slave stop slave; //关闭slave
show slave status\G //查看复制状态
其中Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master 0

13.如果需要手动同步,执行下列
change master to master_host='主库ip',master_user='主库给其他从库准备的用户名',master_password='主库给其他库准备的密码',master_log_file='主库status的file',master_log_pos='主库status的position';
CHANGE MASTER TO MASTER_HOST='192.168.3.128', MASTER_USER='replication', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-sbin.000001', MASTER_LOG_POS=154;

14.如果报错,不外乎用户名密码不对(去主库修正为正确密码),网络(要一个网段),防火墙(3306加入防火墙计划)等。
还有一种是3102错误,所以要确保主从开始之前,mysql没有任何bin(mysql-bin)日志。
只需要将master的mysql-bin删除即可,命令:reset master。
这个只能在没开始复制之前进行。在复制中的情况下需要用expire_logs_days = 7设置七天删除。

记录一次工作中配置的Mysql主从复制过程的更多相关文章

  1. centos7中配置java + mysql +jdk +使用jar部署项目

    centos7中配置java + mysql +jdk  +使用jar部署项目 思维导图 1. 配置JDK環境 1.1下载jdk安装包 Java Downloads | Oracle 1.2 将下载j ...

  2. 记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑

    我通过这篇文章把今天工作中遇到的HTTP跨域和OPTION请求的一个坑记录下来. 场景是我需要在部署在域名a的Web应用里用JavaScript去消费一个部署在域名b的服务器上的服务.域名b上的服务也 ...

  3. windows中配置安装mysql数据库

    MySql 是一种免费的关系型数据库,相较于 MsSqlServer 和 Oracle 比较轻量化,安装也很简单,而且免费不需要的版权费用,个人认为一般的小项目采用还是比较合适的,当然也有部分数据量很 ...

  4. 日常工作中常见的mysql优化技巧

    1.介绍一下MYSQL经常使用的优化技巧. MySQL 自带 slow log 的分析工具 mysqldumpslow ,可是没有说明.本文通过分析该脚本,介绍了其用法. slow log 是 MyS ...

  5. 工作中常用的mysql操作

    一.在一个数据库中定义的存储过程或者是函数在另一数据库的存储过程中引用 1.我首先在数据库player_db中构建了一个函数:p_exp_to_level BEGIN ; ; RETURN v_lev ...

  6. 记录一次工作中jvm被linux杀死的调查

    首先,以后碰到任何jvm的错误,先看日志!!!!!!!! web项目在tomcat目录下的log里,或者自己设定的errorfile目录下.总之,找到一切可以运用的日志,比如crash日志,cored ...

  7. python小白记录二 ——自动化测试selenium中配置浏览器

    1.根据不同的浏览器 下载不同的驱动,下面是谷歌的驱动 下载地址:ChromeDriver - WebDriver for Chrome - Downloads (chromium.org)     ...

  8. centos7 装机配置及 mysql 安装过程

    打开网卡,使操作系统可以上网 1 ip add 查看网卡,lo是回环网卡可以忽略,ens33为实际网卡. [root@localhost ~]# ip add 1: lo: <LOOPBACK, ...

  9. MySQL主从复制原理及配置过程

    一.Mysql数据库的主从复制原理过程: (多实例的安装请参考我的另一篇文章:https://www.cnblogs.com/Template/p/9258500.html) Mysql的主从复制是一 ...

随机推荐

  1. 2019/11/12 CSP模拟赛&&考前小总结

    写在前面的总结 离联赛只有几天了,也马上就要回归文化课了. 有点舍不得,感觉自己的水平刚刚有点起色,却又要被抓回文化课教室了,真想在机房再赖几天啊. 像19/11/11那场的简单题,自己还是能敲出一些 ...

  2. 接口(Interfaces)与反射(reflection) 如何利用字符串驱动不同的事件 动态地导入函数、模块

    标准库内部如何实现接口的 package main import ( "fmt" "io" "net/http" "os" ...

  3. LeetCode刷题笔记-递归-将有序数组转换为二叉搜索树

    题目描述 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定有序数组: [-10, ...

  4. java-day14

    多线程程序访问共享数据会产生安全问题 解决线程安全问题 同步代码块 synchronized(锁对象){ 可能出现线程问题的代码 } 同步方法 修饰符 synchronized 返回值类型 方法名() ...

  5. mysql之MHA、Mycat综合分析

    一.简介 MHA:  你可以把它看做是一个监控MySQL的工具,当master挂了之后,起一个slave作为master,另外一台slave重新作为新master的备库: 所以MHA的架构做好是三台数 ...

  6. javascript面向对象编程笔记(函数)

    第三章 函数 3.1 什么是函数 一般来说,函数声明通常由以下几部分组成: function子句 函数名称 函数所需参数 函数体 return子句.如果某个函数没有显示的返回值,默认它的返回值为und ...

  7. JavaScript 数组函数 map()

    JavaScript 数组函数 map() 学习心得 map()函数是一个数组函数: 它对数组每个原素进行操作,不对空数组进行操作: 不改变原本的数组,返回新数组: arr.map(function( ...

  8. 使用navicat 使用IP、用户名、密码直接连接linux服务器里面的数据库

    一般新申请的服务器,没有开通3306端口的吧,反正我遇到的,要用Navicat去连接linux下的数据库,都必须填写两个地方的信息,才能链接成功. 如果想要只通过填写ip还有数据库用户名还有密码就可以 ...

  9. PHP算法之回文数

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121输出: true示例 2: 输入: -121输出: false解释: 从左向右读, ...

  10. amaze UI(mark)

    为移动而生 Amaze UI 以移动优先(Mobile first)为理念,从小屏逐步扩展到大屏,最终实现所有屏幕适配,适应移动互联潮流. 组件丰富,模块化 Amaze UI 含近 20 个 CSS ...