`

mysql主从镜像

    博客分类:
  • DB
阅读更多

转自:http://www.cnblogs.com/xjdata/archive/2011/10/26/2224674.html


两个地方需要注意:


1.修改/etc/my.cnf时,在以下讲解的配置都需要配置在[mysqld]节里。

   从库配置中还可加入以下配置:

   master-host=主库ip

   master-user=username(此username为grant replication slave on *.* to 'username'@'ip' identified by 'pwd';中的username)

   master-password=pwd(上同)


2.mysql安装目录若没有var目录,也不要紧。var目录下文件即每个数据库的数据文件,包括.frm,.MYD,.MYI,db.opt,找到以上文件,打包tar,scp到从库相应位置便可。

 

 

 

 

 

 

 

Mysql镜像机制配置过程
主服务器:   192.168.0.25
从服务器:   192.168.0.26
MYSQL版本:mysql-5.0.22.tar.gz
安装日期:2010年5月14日
 
 
一、镜像机制简单介绍
镜 像机制是一种能够让运行在不同计算机上的两个或多个Mysql 服务器保持同步变化的机制。不同的数据库系统采用了不同的方法来建立镜像机制。mysql目前只支持“主-从”镜像关系,这种镜像关系的特点是:只有一台 主控系统(可读/可写),所有的数据修改操作都必须在这台系统系统上进行,有一台或多台从属系统(只读),他们有着与主控系统完全一样的数据,主控系统在 经过一个短暂的延迟后也将发生在他们身上;
 
主 从镜像关系中的数据同步是通过主控系统的二进制日志文件实现的,主控系统把自己执行过的 SQL命令记载到自己的二进制日志文件中里,从属系统则通过从主控系统的二进制文件读出SQL命令并加以执行的办法来同步他们自己的数据库;MYSQL镜 像机制不要求主控和从属系统必须使用同一种操作系统
 
1)、镜像机制的优点
 
1)、安全;
2)、速度;
 
2)、镜像机制的局限性和不足:
 
1)、 Mysql目前只支持“主-从”镜像关系,从属系统只能用来完成数据库查询操作(只读);目前在主控系统发生故障时,mysql的镜像机制还不能把一台从 属系统自动切换为新的主控系统;也就是说mysql镜像机制目前只能保障查询操作不会因为主控系统发生故障而无法执行,数据的修改操作还得不到这样的保 证,对无缝镜像关系预计在5.1版本中实现;
2)、主从版本最好相同,一般来说从属系统的版本不低于主控系统;
 
 
二、配置过程
第一步配置主服务器
 
1)、首先在主从安装MYSQL;
2)、在主服务器上进入mysql,在命令行下执行
mysql>grant replication slave on *.* to 'slave'@'192.168.0.26' identified by '123456';

mysql> flush privileges;

 



3)、配置/etc/my.cnf配置文件,修改配置文件中如下内容,如果没有添加上去:

 
 
 
log-bin=mysqlmaster
    
#启动二进制日志系统,绝对应该为日志文件明确的起一个名字(这里我们用mysqlmaster),这是因为没有这么做,mysql服务器将自动使用hostname-bin作为其二进制日志文件的名字,此后万一这台计算机的主机名改变,镜像机制将无法正常工作;
 
binlog-do-db=lianhua
    
需要同步的数据库名
binlog-ignore-db=mysql
 
binlog-ignore-db=test
    
不需要同步的数据库名避免同步mysql用户配置,以免不必要的麻烦
 
server-id = 1
    
机数据库ID 标示为主,该部分还应有一个server-id=Master_id选项,其中master_id必须为1到232–1之间的一个正整数值
 
 
             
4)、停止数据库,并将本地需要同步数据库打包拷贝到从数据库上
#service mysqld stop                  
#cd /usr/local/mysql/var                
#tar -cvf lianhua.tar lianhua           
#scp lianhua.tar root@192.168.0.25:/usr/local/mysql   
[root@node1 ~]#Service mysqld start      
 
第二步、配置从服务器
1)、停止数据库
#service mysqld stop
 
2)、配置slave服务器/etc/my.cnf文件
    
server-id       = 2
    
从服务器ID号,不要和主ID相同
master-connect-retry =60
    
断点重新连接时间
replicate-ignore-db = mysql
replicate-ignore-db = test
    
不需要同步的数据库名
replicate-do-db = lianhua
    
同步数据库名
 
3)、装载主服务器数据库并启动数据库
[root@dnsslave var]# tar -xvf lianhua.tar
[root@dnsslave var]# service mysqld start
Starting MySQL                                             [确定]
 
 
第三步
 
1)、在主服务器上进入mysql的命令行
用下面的命令查看
[root@dns log]# mysql -u root -p
Enter password:
 
mysql> show master status;          #显示(不同主机结果不同)
 
+--------------------+----------+--------------+------------------+
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mysqlmaster.000002 |       98 | lianhua      | mysql,test       |
+--------------------+----------+--------------+------------------+
1 row in set (0.02 sec)
 
2)、在从服务器上执行MYSQL命令行如下:
mysql> slave stop;       
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to
    ->master_host = ‘192.168.0.25’,
->master_user = ‘slave’,
->master_password = ‘123456’,
    -> master_log_file = 'mysqlmaster.000002',
    -> master_log_pos = 98;
Query OK, 0 rows affected (0.01 sec)
mysql>slave start;                    
mysql> show slave status\G;
用show slave status\G;看一下从服务器的同步情况

关于后面红线的错误提示,咨询过属正常现象,我还是不大明白,还望指教;
 
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果都是yes,那代表已经在同步
 
第四步:测试
1)、在主服务器
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| lianhua            |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)
 
mysql> use lianhua;
Database changed
 
mysql> create table sanguo (id INT,name char(10));
Query OK, 0 rows affected (0.03 sec)
 
mysql> show tables;
+-------------------+
| Tables_in_lianhua |
+-------------------+
| sanguo            |
+-------------------+
1 row in set (0.00 sec)
#用navicat连接创建数据内容;
 
mysql> select * from sanguo;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 刘备   |
|    2 | 关羽   |
|    3 | 张飞   |
|    4 | 赵云   |
+------+--------+
4 rows in set (0.00 sec)
 
 
2)、在从服务器上登录
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| lianhua            |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)
 
mysql> use lianhua;
Database changed
mysql> show tables;
+-------------------+
| Tables_in_lianhua |
+-------------------+
| sanguo            |
+-------------------+
1 row in set (0.00 sec)
 
mysql> select * from sanguo;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 刘备   |
|    2 | 关羽   |
|    3 | 张飞   |
|    4 | 赵云   |
+------+--------+
4 rows in set (0.00 sec)
 
mysql>
连个表都是一样的。

分享到:
评论

相关推荐

    MySQL主从镜像双机

    MySQL主从镜像是数据库高可用性和数据冗余的一种常见实现方式,它允许数据在主服务器(Master)上被写入并同步到从服务器(Slave)。当主服务器出现故障时,可以快速将从服务器切换为新的主服务器,确保服务的连续性...

    docker-compose构建mysql主从镜像包

    docker-compose构建mysql主从镜像包

    mysql主从同步镜像备份镜像备份终版.pdf

    ### MySQL主从同步镜像备份知识点详解 #### 一、MySQL主从同步基本概念 - **主从复制机制**:MySQL中的主从复制是一种数据复制技术,它将一个数据库(主服务器)的数据复制到另一个或多个数据库(从服务器),以此...

    mysql主从同步镜像备份镜像备份汇编.pdf

    ### MySQL主从同步镜像备份知识点详解 #### 一、MySQL主从同步基本概念 - **主从复制机制**:MySQL中的主从复制是一种数据复制技术,它将一个MySQL服务器(主服务器)的数据异步复制到一个或多个其他MySQL服务器...

    docker安装mysql主从.txt

    使用allen老师的hub镜像制作自己的mysql主从 --------- docker pull xiaochunping/mysql-master; docker pull xiaochunping/mysql-slave; -- cnetos docker run ,把my.cnf和data数据引入到属主机 -----------------...

    MySQL主从复制读写分离.zip

    MySQL主从复制是一种数据库镜像技术,通过它,数据可以从一个服务器(主服务器)实时同步到另一个或多个服务器(从服务器)。这种复制过程通常发生在后台,不影响正常业务运行,确保数据的一致性和可用性。 1. **...

    Docker 安装 MySQL5.7.30 Docker安装MySQL主从配置

    Docker 安装 配置阿里云镜像加速器 Docker 安装 MySQL5.7.30 Docker安装MySQL主从配置

    Mysql主从同步的实现原理

    MySQL主从同步是一种常见的数据库复制策略,用于提升系统的可扩展性、容错性和数据安全性。在主从同步架构中,数据库操作首先在主(master)服务器执行,然后将这些操作实时地复制到从(slave)服务器,确保数据的...

    Mysql安装及主从备份配置方案操作说明

    在MySQL中,主从复制允许一个或多个“从”服务器镜像“主”服务器的数据更改。这样可以实现负载均衡、故障切换和数据备份。配置主从复制通常涉及以下步骤: 1. **在主服务器上设置二进制日志**:在`my.cnf`中开启`...

    [MySQL主从采集]-基于Metricbeat创建自定义采集器(Metricset).pdf

    本篇文档主要介绍了如何在Linux环境下基于Metricbeat创建自定义的采集器(Metricset),用于采集MySQL主从状态信息。以下是详细的知识点: ### 安装Golang环境 文档首先说明了在Linux系统上安装Golang环境的步骤:...

    详解如何利用docker快速构建MySQL主从复制环境

    主要介绍了详解如何利用docker快速构建MySQL主从复制环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Linux下建立Mysql镜像数据库(mysql 4.1)

    Linux 下建立 Mysql 镜像数据库(mysql 4.1) 本文将详细介绍在 Linux 环境下建立 Mysql 镜像数据库的方法。该方法适用于 MySQL 4.1 版本,并对主库和从库的配置进行了详细的描述。 知识点1:主库配置 在 Linux ...

    mysql镜像备份mysql镜像备份

    mysql建立镜像数据库- - Tag: mysql建立镜像数据库 环境介绍:主库 192.168.0.205 从库 192.168.0.206 mysql版本:4.1.13a 1、主库创建/etc/my.cnf,修改[mysqld]里边的键值增加 server-id=1 log-bin=binlog_...

    mysql5.7 主从配置docker配置文件

    该配置文件可以直接放置到目录下,使用docker-compose up -d启动使用。 其中server_id=XX不能重复 在master中执行: grant replication slave,replication client on *.* to 'user1'@'%' identified by '1';...

    利用Docker,配置两个mysql数据库,并让其主从数据同步.txt

    利用Docker,配置两个mysql数据库,并让其主从数据同步

    Linux下MySQL镜像服务器链的实现.pdf

    例如,表1显示了不同版本的MySQL主从服务器的兼容性情况。 在Linux环境下,例如Fedora Core,实现MySQL镜像服务器链的过程包括以下步骤: 1. 安装MySQL:在A、B、C三台服务器上安装相同版本的MySQL,如mysql-...

    数据库MySQL 8.0.37版本

    在高可用性和复制方面,MySQL 8.0.37可能改进了复制延迟问题,提供了更稳定的主从同步,以确保多节点环境下的数据一致性。此外,可能还增强了故障切换的自动化程度,减少了因硬件故障或网络问题导致的服务中断。 ...

    基于docker部署主从MYSQL数据库.pdf

    "基于docker部署主从MYSQL数据库.pdf" 本资源摘要信息主要介绍了基于docker部署主从MYSQL数据库的技术实现和使用场景,以及其在实际应用中的优点和缺陷。 首先,作者介绍了当前时代的科学技术和网络的发展,导致...

Global site tag (gtag.js) - Google Analytics