完整的mysql主从配置方法详解

mysql主从分两个角色

       1、主服务器    master

       2、从服务器    slave

mysql主从复制就是两个服务器之间数据库的同步,也可以理解成对主服务器的一个备份,当主服务器的数据进行了变更,那么从服务器也会自动更新,其实是通过bin-log日志实现的,也就说他们中间是传输binlog日志的。这样我们就可以对数据进行多个节点进行冗余从而保证可用性!

公司现在有三台服务器,一台阿里云,两台VPS,现在需要把阿里云上的数据库同步到其他两台VPS上。阿里云做主服务器其他两台服务器做从服务器

操作如下:

  1、在阿里云服务器中修改my.cnf文件(一般在/etc/my.cnf)

 代码如下 复制代码

   

[mysqld]
       log-bin=mysql-bin   //[必须]启用二进制日志
       server-id=1         //[必须]服务器唯一ID,默认是1,一般取IP最后一段
       binlog-do-db=wordpress   //[可选] 设置需要同步的数据,如果不设置将同步所有数据库
       binlog_ignore_db=mysql  //[可选] 忽略mysql数据,因为mysql数据库是mysql的一些帐户存放,这个没有必要同步

  2、来到从服务修改my.cnf

 代码如下 复制代码
[mysqld]
       log-bin=mysql-bin   //[必须]启用二进制日志
       server-id=2       //[必须]服务器唯一ID,默认是1,一般取IP最后一段

  3、重启这两台服务器的mysql(第二台从服务器和第一台一样,这里就只写第一个的配置了)

  4、登录主服务器为从服务器授权

 代码如下 复制代码
GRANT REPLICATION SLAVE ON *.* to 'sync'@'%' identified by 'sync'; //不建议使用root

“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用从服务器IP代替,如192.168.145.226,加强安全。

5、查看主服务器的状态

 代码如下 复制代码
show master status;
mysql> show master status;
+------------------+----------+-----------------------+------------------+
| File             | Position | Binlog_Do_DB          | Binlog_Ignore_DB |
+------------------+----------+-----------------------+------------------+
| mysql-bin.000004 |      106 | wordpress,wordpress   | mysql,mysql      |
+------------------+----------+--------------+---------------------------+

查看完状态就不要进行任何操作了,防止状态产生变化

6、登录从服务器配置

 代码如下 复制代码
mysql> CHANGE MASTER TO
    -> MASTER_HOST = '主服务器地址',
    -> MASTER_USER ='刚才新建的帐号',
    -> MASTER_PASSWORD='新建的用户密码',
    -> MASTER_PORT=3306,
    -> MASTER_LOG_FILE='mysql-bin.000003',
    -> MASTER_LOG_POS=106;

7、开启从服务器的复制功能

 代码如下 复制代码
START SLAVE

8、查看从服务器的状态

 代码如下 复制代码

mysql> show slave statusG
*************************** 1. row ***************************
               Slave_IO_State:
                  Master_Host: 117.34.73.175
                  Master_User: mysqlsync
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 106
               Relay_Log_File: AY140429124852508639Z-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 106
              Relay_Log_Space: 106
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)
这里需要注意的

Slave_IO_Running = Yes
Slave_SQL_Running = Yes

这两个值必须为Yes,如果某一个为No就说说明主从是有问题的
如果会shell或python的话可以写一个检测脚本,检测这两个值是否都为Yes,如果有一个为No那就说明主从出现问题发邮件报警吧!

如果其中一个为yes的话你就需要检查一下了,我在操作的过程遇到了Slave_IO_Running为No了,这个时候你看一下 Last_IO_Error这里提示:error connecting to master ‘sync@218.244.**.**:3306′ – retry-time: 60  retries: 86400 (PS:**为打码),这里提示又无法连接到服务器,一般来说可能是帐号密码设置错误,或者服务器的防火墙给拦截了,经过检查阿里云开云盾开放了3306,但是没有还是不能,这个时候在从服务器直接登录,发现是空间商的问题,本地是可以的但是从服务器是没有办法登录。

9、这个时候你就可以在主服务器进行建表插入数据等等操作,看看从服务器是否已经同步了

可能在敲命令的时候敲错了一些东西,可以使用下边的sql语句进行修改

 代码如下 复制代码

CHANGE MASTER TO MASTER_HOST='218.244.136.92'; //从服务器执行,意思是:修改主服务器的地址,底下意思相同
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003'MASTER_LOG_POS=106;

在执行的时候需要先停止从服务器的同步,

停止同步

 代码如下 复制代码

SLAVE STOP

修改完成之后记得开启
SLAVE START

时间: 2024-10-12 11:05:53

完整的mysql主从配置方法详解的相关文章

完整的mysql主从配置方法

  mysql主从分两个角色 1.主服务器 master 2.从服务器 slave mysql主从复制就是两个服务器之间数据库的同步,也可以理解成对主服务器的一个备份,当主服务器的数据进行了变更,那么从服务器也会自动更新,其实是通过bin-log日志实现的,也就说他们中间是传输binlog日志的.这样我们就可以对数据进行多个节点进行冗余从而保证可用性! 公司现在有三台服务器,一台阿里云,两台VPS,现在需要把阿里云上的数据库同步到其他两台VPS上.阿里云做主服务器其他两台服务器做从服务器 操作如

linux中mysql主从配置步骤详解

一.mysql主从方式: 同步:主服务器有数据写入,存储在硬盘,记录二进制日志一份.二进制日志完整发送给从服务器记录于中继日志中,从服务器回应主服务器已收到, 异步:主服务器写入数据,存储磁盘,记录二进制日志,直接反馈客户端:至于从服务器收到与否,不予理会 mysql的复制默认为异步模式 二.配置主从服务器 1.先在两台机器上分别安装好mysql,版本需要一致,然后配置,启动 2.主服务器配置 1).查看mysql是否正常启动  netstat -nltp | grep 3306 2)修改配置文

mysql 5.6.13 免安装版配置方法详解_Mysql

1. 下载mysql Community Server 5.6.13 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\Program Files\MySQL\mysql-5.6.13-win32" 将解压目录下默认文件 my-default.ini 拷贝一份,改名 my.ini 复制下面的配置信息到 my.ini 保存 #如果没有my-default.ini,可自己新建my.ini或者从其他地方中获取 ################

YUM解决RPM包安装依赖关系及yum工具介绍本地源配置方法详解_Linux

1.背景概述 在实际生产环境下,对于在linux系统上安装rpm包,主要面临两个实际的问题 1)安装rpm包过程中,不断涌现的依赖关系问题,导致需要按照提示或者查询资料,手工安装更多的包 2)由于内外网的隔离,无法连接外网的yum源 鉴于上述因此,本文将详细介绍,yum工具以及配置本地yum源的方法 2.yum工具简介 •yum工具作为rpm包的软件管理器,可以进行rpm包的安装.升级以及删除等日常管理工作,而且对于rpm包之间的依赖关系可以自动分析,大大简化了rpm包的维护成本. •yum工具

Linux crontab定时任务配置方法(详解)_Linux

CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行.cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业.crontab命令允许用户提交.编辑或删除相应的作业.每一个用户都可以有一个crontab文件来保存调度信息.系统管理员可以通过cron.deny 和 cron

linux网站服务Apache的安装与配置方法详解_Linux

这篇文章介绍下linux网站服务apache的安装与配置方法,包括挂载光盘,安装http服务,管理httpd服务,httpd的配置文件几大部分.具体详情可以参考下文. 1.挂载光盘 自己习惯将光盘挂载在/media/cdrom目录,在做本地yum源的时候此目录为默认目录之一 [root@localhost /]# mount /dev/cdrom /media/cdrom/ 2.安装httpd服务(如果本地yum源已经搭建好就直接进行这一步,没有的话需要搭建,前面的文章有提到yum源的搭建) [

Apache防DDOS模块mod_evasive安装和配置方法详解_Linux

一.mod_evasive 介绍mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块.对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块.虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力.如配合iptables.硬件防火墙等防火墙设备配合使用,可能有更好的效果.mod_evasive 的官方地址: http://www.zdziarski.com/二.mod_evasive 工作原理Apache模块mo

nginx/linux下配置php+mysql环境具体方法详解

先我们要准备配置环境的文件 Nginx 下载地址: http://nginx.org/download/nginx-1.3.14.zip PHP 下载地址: http://windows.php.net/downloads/releases/php-5.2.17-nts-Win32-VC6-x86.zip MySQL 下载地址:http://www.mysql.com/downloads/installer/ 2.安装配置nginx: 解压nginx,修改配置文件:  代码如下 复制代码 ser

mysql 5.5数据库主从配置步骤详解

上次给大家介绍了mysql 5.1主从搭建配置教程,这次我们来实现mysql 5.5的主从复制,其实大体上配置是差不多的,只有点细微的差别.    系统:centos 5.x    需要的软件包:mysql-5.5.33.tar.gz    环境准备:         服务器a:192.168.10.151 (主)         服务器b:192.168.10.152 (从)   1.安装前准备 wget http://mysql.llarian.net/Downloads/MySQL-5.5