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. Python内置的一个用于命令项选项与参数解析的模块argparse

    一.argparse简单使用 我们先来看一个简单示例.主要有三个步骤: 创建 ArgumentParser() 对象 调用 add_argument() 方法添加参数 使用 parse_args() ...

  2. NX二次开发-UFUN拾取屏幕位置UF_UI_specify_screen_position

    #include <uf.h> #include <uf_ui.h> UF_initialize(); //拾取屏幕位置 //在屏幕用鼠标拾取一点 char sMessage[ ...

  3. docker网络原理

    以下内容引用Docker -- 从入门到实践 当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机.它会在挂 ...

  4. 2、http请求与http响应

    我们在接口测试过程中,可能会用http协议,webservice协议,当然用的较多的还是http协议,webservice协议在此不做过多介绍,我们先了解一下http协议,然后重点介绍http请求与响 ...

  5. 华东交通大学2018年ACM“双基”程序设计竞赛 C. 公式题 (2) (矩阵快速幂)

    题目链接:公式题 (2) 比赛链接:华东交通大学2018年ACM"双基"程序设计竞赛 题目描述 令f(n)=2f(n-1)+3f(n-2)+n,f(1)=1,f(2)=2 令g(n ...

  6. this 关键字的使用及说明

    this 是Java 中常见的一个关键字,它的主要作用是引用类的当前实例,本篇文章主要介绍 this 关键字的几种使用情况. 1. this 调用当前类的变量,也就是类中的成员变量. 代码示例: pu ...

  7. Android Telephony分析(一) ---- Phone详解

    目录: Phone的继承关系与PhoneFactory(GsmCdmaPhone.ImsPhone.SipPhone) Phone进程的启动 Phone对象的初始化(DefaultPhoneNotif ...

  8. JQuery validate验证规则

    //定义中文消息 var cnmsg = { required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件”, url: “请输入合法的网址”, d ...

  9. jQuery post使用变量作参数名

    jQuery Query Post使用方法: $.post("test.php", { name: "John", time: "2pm" ...

  10. maven javaProject打包发布成服务

    1,现在pom.xml中添加打包所需要的jar包. <plugins> <plugin> <groupId>org.apache.maven.plugins< ...