完整的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-09-09 20:57:38

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

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

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

mysql数据库互为主从配置方法分享_Mysql

mysql主从配置小记: 共有四台机器:A(10.1.10.28),B(10.1.10.29),C(10.1.10.30),D(10.1.10.31). 配置后结果:A-C互为主从,B为A的slave,D为C的slave. 0)准备工作 在四台机器上面安装好mysql后,创建用于同步的账号. 添加账户: 复制代码 代码如下: INSERT INTO user (Host,User, Password,Select_priv,Insert_priv,Update_priv,Delete_priv,

Windows下MySQL安装配置方法图文教程_Mysql

Windows下的安装与配置MySQL详细步骤思路,分享给大家,供大家参考,具体内容如下 本文介绍Windows XP下的安装与配置. 要想在Windows中运行MySQL,需要: Ø 32位Windows操作系统,例如9x.Me.NT.2000.XP或Windows Server 2003. 基于Windows NT的操作系统(NT,2000,XP,2003),将MySQL服务器做为服务来运行.强烈建议使用基于Windows NT的操作系统. Ø TCP/IP协议支持(也许是所有数据库系统的基

MAC下mysql安装配置方法图文教程_Mysql

一.下载MySQL     访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到"MySQL Community Server"下方有一个"download"点击. 进入MySQL的下载界面(http://www.mysql.com/downloads/mysql/),如果你是用的Mac OS来访问的话那么就会默认为你选好了Mac OS X 平台,而下面罗列的都是在Mac OS上能用的MySQL的版本,如果是用的其他

Mysql主从配置,实现读写分离

原文:Mysql主从配置,实现读写分离 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想.这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力.Ok切入今天微博主题,利用MySQL主从

Docker mysql 主从配置详解及实例_Mysql

Docker mysql 主从配置 1.首先创建两个文件my-m.cnf(主库配置) .my-s.cnf(从库配置) my-m.cnf 内容如下 # Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU

mysql主从配置教程及容错方案详解

主从配置我们需要有两台mysql服务器,我们先要清楚两点 1.mysql配置文件my.cnf的位置 2.如何启动.停止mysql,找好启动文件 假设有两台机器,已经安装好了mysql(尽量同版本,且两台机器同一网络,可以ping通) 有朋友说:"从服务器,不能低于主服务器的版本",不过我是低于的,没有出现问题. 主机A: 192.168.1.100 从机B:192.168.1.101 可以有多台从机 环境windows 2003系统 主服配置文件 server-id = 1 log-b

Centos下nagios监控mysql主从配置的例子

方法一 一.mysql从服务器设置 1.mysql从服务器用户添加  代码如下 复制代码 执行如下语句添加用户: mysql> GRANT REPLICATION CLIENT ON *.* TO monitor@localhost IDENTIFIED BY 'PassWord'; 2.下载check-mysql-slave.pl脚本 cd /usr/local/bin/ wget http://www.centos.bz/wp-content/uploads/2012/10/check-my

小记一次mysql主从配置解决方案_Mysql

今天研究了个开源项目,数据库是mysql的,其中的脚本数据需要备份,由于本人的机器时mac pro,而且mac下的数据库连接工具都不怎么好用,就想着如何利用windows下的数据库连接工具使用,并做相关备份,另外windows系统下的sqlyog工具还是非常强大的,在此推荐. 因此为了使用sqlyog等windows系统下的连接工具,便开始了一天的折腾. 首先两种思路,其一是利用另外一台宏碁笔记本电脑,直接在其上安装sqlyog使用,通过无线局域网进行连接使用,这种方式太过麻烦,而且来回换电脑很