Mysql实现主从配置和多主多从配置

我们现在模拟的是主从(1台主机、一台从机),其主从同步的原理,就是对bin-log二进制文件的同步,将这个文件的内容从主机同步到从机。

一、配置文件的修改

1、主机配置文件修改配置

我们首先需要mysql主机(192.168.254.130)的/etc/my.cnf配置文件,添加如下配置:

#主机唯一ID
server-id=1
#二进制日志
log-bin=mysql-bin
#不需要同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#同步的数据库名称
binlog-do-db=mycat
#二进制的格式
binlog_format=STATEMENT

我们看下目前整个my.cnf文件

[root@localhost Desktop]# cat /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/usr/local/mysql/data/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id=1
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-do-db=mycat
binlog_format=STATEMENT

[mysqld_safe]
log-error=/usr/local/mysql/data/mysqld.log
pid-file=/usr/local/mysql/data/mysqld/mysqld.pid
[root@localhost Desktop]# 

修改主机的配置文件后,我们需要通过命令重启下服务:

[root@localhost support-files]# ls
magic  mysqld_multi.server  mysql-log-rotate  mysql.server
[root@localhost support-files]# pwd
/usr/local/mysql/support-files
[root@localhost support-files]# ./mysql.server restart

然后我们修改下从机(192.168.254.131)的配置文件。

2、从机的配置

从机的配置修改比较简单:

#从机机器唯一ID
server-id=2
#中继日志
relay-log=mysql-relay

同样修改配置后,我们重启下从机

二、mysql客户端命令操作

下面我们可以通过命令连接到mysql的命令端:

[root@localhost bin]#
[root@localhost bin]# pwd
/usr/local/mysql/bin
[root@localhost bin]# ./mysql -uroot -p

1、主机操作

1)、创建同步用户

首先我们可以在主机创建一个专门用于主从同步用户,通过命令:

GRANT REPLICATION SLAVE ON *.* TO 'SLAVE'@'%' IDENTIFIED BY '123456';

2)、查看同步文件状态

然后我们通过show master status;查看主机的同步内容状态:

mysql> show master status;
+------------------+----------+--------------+--------------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB         | Executed_Gtid_Set |
+------------------+----------+--------------+--------------------------+-------------------+
| mysql-bin.000001 |      154 | mycat        | mysql,information_schema |                   |
+------------------+----------+--------------+--------------------------+-------------------+
1 row in set (0.00 sec)

2、从机操作

1)、设置从机的主机

执行如下命令,这里设置了我们与主机建立同步的相关信息

CHANGE MASTER TO MASTER_HOST='192.168.254.130',
MASTER_USER='SLAVE',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=430;

这里如果提示已经设置了主机配置,可以通过stop slave&reset master进行重置。

2)、启动同步

下面我们再通过start slave开启同步:

​ 就可以看到:

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.254.130
                  Master_User: SLAVE
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 592
               Relay_Log_File: mysql-relay.000002
                Relay_Log_Pos: 482
        Relay_Master_Log_File: mysql-bin.000001
             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: 592
              Relay_Log_Space: 685
              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: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: 74397a99-accf-11eb-ae0d-000c2912d302
             Master_Info_File: /usr/local/mysql/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:
1 row in set (0.00 sec)

mysql> 

这里我们可以看到Slave_IO_Running、Slave_SQL_Running都为YES,则成功了,如果是下面这种:

*************************** 1. row ***************************
               Slave_IO_State: Connecting to master
                  Master_Host: 192.168.254.130
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 430
               Relay_Log_File: mysql-relay.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Connecting
            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: 430
              Relay_Log_Space: 154
              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: 1045
                Last_IO_Error: error connecting to master 'slave@192.168.254.130:3306' - retry-time: 60  retries: 1
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 0
                  Master_UUID:
             Master_Info_File: /usr/local/mysql/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp: 210505 00:18:08
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:
1 row in set (0.00 sec)

我们可以看到Last_IO_Error这里有错误,我们就可以去看下日志报的什么问题了,目前我这个是因为同步用户写错了才不能同步,按上面说的先停止同步重置,修改后同步命令,再操作一遍就可以了。

三、主从同步测试

1、主机创建库

我们先在主机创建我们前面设置的要同步的数据库mycat:

mysql> create database mycat;
Query OK, 1 row affected (0.00 sec)

mysql> use mycat;
Database changed
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mycat              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> 

2、从机查看库

然后我们就能在从机看到这个库了

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mycat              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

3、表数据的初始

下面我们进行表数据的测试

1)、主机
首先我们再主机建立表并插入数据

mysql> use mycat;
Database changed
mysql>
mysql> create table `test1`(
    -> id int auto_increment not null primary key,
    -> name varchar(10) default null
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> insert into test1(`id`,`name`) value(1,"petty");
Query OK, 1 row affected (0.16 sec)

mysql> select * from test1;
+----+-------+
| id | name  |
+----+-------+
|  1 | petty |
+----+-------+
1 row in set (0.00 sec)

mysql> 

2)、从机
下面我们在从机查看看有没有成功同步:

mysql> use mycat;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-----------------+
| Tables_in_mycat |
+-----------------+
| test1           |
+-----------------+
1 row in set (0.00 sec)

mysql> select * from test1;
+----+-------+
| id | name  |
+----+-------+
|  1 | petty |
+----+-------+
1 row in set (0.00 sec)

mysql>

可以看到我们的主从配置已经成功了。

四、多主多从

我们还可以多主多从,例如我们一个主从序列是编号1位主机、编号2为从机,然后编号3为主机、编号4为从机,同时编号1主机与编号3主机相互为主从,这样就是其中主机一台有问题,整个mysql集群还是能正常工作。

​ 由于目前只有3台机,只使用三台来写demo(一台windows,两台linux)。

1、编号1主机(192.168.254.30)

1)、修改配置
我们首先需要修改其原来的etc/my.cnf文件,添加:

# 作为从机也修改其bin-log日志
log-slave-updates
#自增长的幅度
auto-increment-increment=2
#自增长的开始位置
auto-increment-offset=1

整个文件的信息

[root@localhost Desktop]# cat /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/usr/local/mysql/data/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id=1
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-do-db=mycat
binlog_format=STATEMENT

log-slave-updates
auto-increment-increment=2
auto-increment-offset=1

[mysqld_safe]
log-error=/usr/local/mysql/data/mysqld.log
pid-file=/usr/local/mysql/data/mysqld/mysqld.pid
[root@localhost Desktop]#

修改这个文件后我们需要重启机器

2、编号2从机(192.168.254.31)

这台原来已经配置其连接30机器了,所以这次不用修改

3、编号3主机(192.168.254.1)

1)、修改配置文件
由于这台机器是windows,所以我们需要修改其的my.ini文件,在其最后面添加

server-id=3
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-do-db=mycat
binlog_format=STATEMENT

log-slave-updates
auto-increment-increment=2
auto-increment-offset=2

注意我们上面改了server-id,同时也改了其的增长开始点auto-increment-offset=2。同时再重启服务。

2)、创建同步用户
首先我们可以在主机创建一个专门用于主从同步用户,通过命令:

 GRANT REPLICATION SLAVE ON *.* TO 'SLAVE'@'%' IDENTIFIED BY '123456';

3)、查看状态

mysql> show master status;
+------------------+----------+--------------+--------------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB         | Executed_Gtid_Set |
+------------------+----------+--------------+--------------------------+-------------------+
| mysql-bin.000001 |      154 | mycat        | mysql,information_schema |                   |
+------------------+----------+--------------+--------------------------+-------------------+
1 row in set (0.00 sec)

mysql>

4)、设置同步的状态

下面我们运行其连接的主机(30)信息

CHANGE MASTER TO MASTER_HOST='192.168.254.130',
MASTER_USER='SLAVE',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=430;

5)、编号1主机同步(192.168.254.30)
我们需要设置其去同步编号3主机(192.168.254.1),即我们前面查看的编号3的(master status):

CHANGE MASTER TO MASTER_HOST='192.168.254.1',
MASTER_USER='SLAVE',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;

然后我们在编号1主机执行同步start slave;,也在编号3主机执行同步start slave;。

4、测试查看

1)、可能的问题(可略过)

现在我们测试,然后分别查看这两台的master状态show master status;。

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.254.1
                  Master_User: SLAVE
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 154
               Relay_Log_File: localhost-relay-bin.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
........
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.254.130
                  Master_User: SLAVE
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 462
               Relay_Log_File: LAPTOP-QR83QEC0-relay-bin.000003
                Relay_Log_Pos: 675
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
.........

可以看到它们的同步都是yes。这里可能有问题,我们需要自己解决,例如我在编号1机器修改配置,然后在查看其的状态,

mysql> show master status;
+------------------+----------+--------------+--------------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB         | Executed_Gtid_Set |
+------------------+----------+--------------+--------------------------+-------------------+
| mysql-bin.000002 |      462 | mycat        | mysql,information_schema |                   |
+------------------+----------+--------------+--------------------------+-------------------+
1 row in set (0.00 sec)

mysql>

我如果以这个消息去让编号3机器同步编号1,就会报(因为我又运行了一条新的插入语句),但建表语句是在日志mysql-bin.000001,而这里我因为重启了,其有有新的mysql-bin.000002,所以有修改回了原来编号2的同步信息。

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.254.130
                  Master_User: SLAVE
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 462
               Relay_Log_File: LAPTOP-QR83QEC0-relay-bin.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 1146
                   Last_Error: Error 'Table 'mycat.test1' doesn't exist' on query. Default database: 'mycat'. Query: 'insert into test1(`id`,`name`) value(2,"TOm")'

2)、在编号3插入数据
下面我们再编号3插入数据,看编号1、2能不能看到

在编号3操作:

mysql> insert into test1(`id`,`name`) value(3,"kitt");
Query OK, 1 row affected (0.01 sec)

mysql> select * from test1;
+----+-------+
| id | name  |
+----+-------+
|  1 | petty |
|  2 | TOm   |
|  3 | kitt  |
+----+-------+
3 rows in set (0.00 sec)

mysql>

在编号1查看

mysql> select * from test1;
+----+-------+
| id | name  |
+----+-------+
|  1 | petty |
|  2 | TOm   |
|  3 | kitt  |
+----+-------+
3 rows in set (0.00 sec)

mysql>

在编号2查看

mysql> select * from test1;
+----+-------+
| id | name  |
+----+-------+
|  1 | petty |
|  2 | TOm   |
|  3 | kitt  |
+----+-------+
3 rows in set (0.00 sec)

mysql>

可以看到目前我们已经同步成功了,在编号1中能查看到主机编号3的插入信息。

3)、编号1处理数据

下面我们在编号1操作查看

编号1:

mysql> insert into test1(`id`,`name`) value(4,"lisa");
Query OK, 1 row affected (0.00 sec)

mysql> select * from test1;
+----+-------+
| id | name  |
+----+-------+
|  1 | petty |
|  2 | TOm   |
|  3 | kitt  |
|  4 | lisa  |
+----+-------+
4 rows in set (0.00 sec)

mysql>

编号3:

mysql> select * from test1;
+----+-------+
| id | name  |
+----+-------+
|  1 | petty |
|  2 | TOm   |
|  3 | kitt  |
|  4 | lisa  |
+----+-------+
4 rows in set (0.00 sec)

mysql>

可以看到其是相互同步的。

到此这篇关于Mysql实现主从配置和多主多从配置的文章就介绍到这了,更多相关Mysql 主从配置和多主多从配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL主从配置学习笔记

    ● 本打算买个云数据,为我的新项目做点安全保障.阿里云,腾讯云转了一圈,两个字太贵.不就数据有备份吗,既然这样那我不如自己来做备份. ● 家里有2个树莓派直接把mysql备份到他们上就好了,网上有教程,这就开整.在segmentfault mysql 这么一搜好几篇,按照他们一说的那么一做,当然是不成功的,要是成功了我就不写这篇文章了.ps:他们的教程都是对的. ● 下面就开始配置主从服务器,和网上教程一样,因为我就是看他们的. 1. 主设置(master) 修改mysql配置文件,一般在/et

  • Docker 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

  • MySQL5.7主从配置实例解析

    MySQL5.7主从配置实现方法,具体内容如下 安装环境: Master:10.211.55.11,Redhat6.5,MySQL5.7.12 Slave: 10.211.55.12,Redhat6.5,MySQL5.7.12 Master的my.cnf配置: Slave的my.cnf配置: 可指定那些database需要复制,哪些不需要复制,如在我的my.cnf配置中注释掉的内容,我默认是全部都复制.修改完my.cnf配置文件后,两台机器都将MySQL服务重启:service mysqld r

  • 基于Linux的mysql主从配置全过程记录

    mysql主从配置 1.准备 主机:192.168.244.128 从机:192.168.244.130 配置主机 2.授权给从机服务器 GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.244.130' identified by 'root@bisnow'; FLUSH PRIVILEGES; 这里表示配置从机登录用户名为 rep1,密码为 123,并且必须从 192.168.248.139这个 地址登录,登录成功之后可以操作任意库中的任意表

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

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

  • 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,

  • Mysql实现主从配置和多主多从配置

    我们现在模拟的是主从(1台主机.一台从机),其主从同步的原理,就是对bin-log二进制文件的同步,将这个文件的内容从主机同步到从机. 一.配置文件的修改 1.主机配置文件修改配置 我们首先需要mysql主机(192.168.254.130)的/etc/my.cnf配置文件,添加如下配置: #主机唯一ID server-id=1 #二进制日志 log-bin=mysql-bin #不需要同步的数据库 binlog-ignore-db=mysql binlog-ignore-db=informat

  • windows下mysql数据库主从配置教程

    windows下配置mysql数据库主从的详细过程,具体内容如下 所用到工具: Mysql.Navicat Premium: 主库设置: 一.设置my.ini 文件: 1.在安装目录下找到my.ini 文件: 默认路径:C:\Program Files\MySQL\MySQL Server 5.0 2.在my.ini 文件中找到[mysqld](#注释自行删除) 添加如下配置 server-id=1#主库和从库需要不一致 log-bin=mysql-bin binlog-do-db=mstest

  • MySQL配置了双主,是如何避免出现数据回环冲突的

    不知道大家想过这个问题没有?如果配置了双主,是如何避免出现数据回环冲突的,因为在数据双活的设计方案中,这可以算是方案的核心设计思想之一. 如果主库触发SQL语句: insert into test_data(name) values('aa'); 那么Master1生成binlog,推送数据变化到Master2,在Master2上面生成relay log,然后交由sql thread进行变更重放,反之也是类似的流程,整个流程可以这样描述. 如果Master2消费了relay的数据,然后会产生bi

  • MySQL双主(主主)架构配置方案

    在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入口,增加高可用.不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题. 主从同步复制原理 在开始之前,我们先来了解主从同步复制原理. 复制分成三步: 1. master将改变记录到二进制日志(binary

  • MySQL 8.0.15配置MGR单主多从的方法

    一.简介 MySQL Group Replication(简称MGR)字面意思是mysql组复制的意思,但其实他是一个高可用的集群架构,暂时只支持mysql5.7和mysql8.0版本. 是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案,提供了高可用.高扩展.高可靠的MySQL集群服务. 也是mysql官方基于组复制概念并充分参考MariaDB Galera Cluster和Percona XtraDB Cluster结合而来的新的高可用集群架构. MySQL Grou

  • MYSQL数据库主从同步设置的实现步骤

    目录 为什么要主从同步? 主从同步的原理 MYSQL数据库进行主从同步 创建两个MYSQL数据库 初始化,安装主机数据库 配置从机 测试主从同步 为什么要主从同步? 1.读写分离 主从同步分为一个主机多个从机,可以设置主从机权限.主机可以读写,从机只能读.主机对数据的操作会复制到从机,主机的数据和从机的一致.这样就可以实现读写分离,读写分离可以缓解服务器压力.互联网的应用往往是“读多写少”的需求,采用读写分离的方式,可以实现更高的并发访问. 2.数据备份 我们通过主从复制将主库上的数据复制到了从

  • mysql 5.7.17 winx64解压版安装配置方法图文教程

    本文为大家分享了mysql 5.7.17 winx64解压版安装配置方法,供大家参考,具体内容如下 一.下载 下载地址 二.配置 1. 解压下载的mysql的安装包,将解压目录下的my-default.ini文件拷贝到同目录下,重命名为my.ini文件,然后修改文件内容,如下: 2.配置环境变量,将D:\mysql\mysql-5.7.17-winx64\bin这个目录加入到Path下. 三.安装 1.用管理员模式打开dos命令行,进入到mysql的bin目录下. 2.初始化数据,执行命令: m

  • MySQL数据库主从同步实战过程详解

    本文实例讲述了MySQL数据库主从同步实战过程.分享给大家供大家参考,具体如下: 接上一篇:MySQL数据库入门之备份数据库 安装环境说明 系统环境: [root@~]# cat /etc/redhat-release CentOS release 6.5 (Final) [root@~]# uname -r 2.6.32-431.el6.x86_64 数据库: 由于是模拟环境,主从库在同一台服务器上,服务器IP地址192.168.1.7 主库使用3306端口 从库使用3307端口 数据库数据目

  • mysql 5.7.20常用下载、安装和配置方法及简单操作技巧(解压版免安装)

    话说凌晨刚折腾完一台MySQL 5.7.19版本的安装,未曾料到早上MySQL官方就发布了最新的5.7.20版本.这个版本看似更新不多,但是加入了一个我们所急需的功能. MySQL 5.7.20版本新增了参数group-replication-member-weight,用来表示选主时服务器的优先级.若没有这个优先级,则之前版本的MGR会选择一个或许不是用户想要的节点,这是一个令人头疼的问题.相信5.7.20版本新增的该参数能解决一些用户的痛点. 1. 下载: mysql-5.7.20是解压版免

  • MySQL 处理插入过程中的主键唯一键重复值的解决方法

    本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE:接下来就分别看看这三种方式的处理办法. IGNORE 使用ignore当插入的值遇到主键(PRIMARY KEY)或者唯一键(UNIQUE KEY)重复时自动忽略重复的记录行,不影响后面的记录行的插入, 创建测试表 CREATE TABLE Tignore (ID INT NOT NULL PRIMARY KEY , NAME1 INT )d

随机推荐