zoukankan      html  css  js  c++  java
  • windows环境下mysql主从配置

    mysql主从配置。

      相关理论知识可以百度一下,这里就不多说了,直接说如何配置。

    一、环境介绍及说明

      主库所在的操作系统:win7

      主库的版本:mysql-5.6.24-winx64.zip

      主库的ip地址:127.0.0.1

      主库的端口:3306

      从库所在的操作系统:win7

      从库的版本:mysql-5.6.38-winx64.zip

      从库的ip地址:127.0.0.1

      从库的端口:3307

    下载地址:https://www.mysql.com/downloads/

    如果有多余的服务器也可以不用都配置到一台电脑上,只需要各服务器ip能通就行。

    注:主库和从库版本可以一致也可以不一致,需要说明一点,如果两者版本不一致,一般主库的版本需要比从库的版本低,这样就可以避免由于版本问题,有些sql不能执行的问题。

    二、数据库的安装

      由于我下载的mysql都是解压版的,所以只需要把下载好的zip包解压到服务器上即可,就不需要安装了。

      我的解压目录如下:

      

     1)、主库(master)的安装及配置

       进入主库mysql-5.6.24-winx64目录中,在此目录中新建my.ini文件并添加一下配置。

      

      具体文件内容如下,将里面的路径修改成你自己的主库路径。

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    
    [mysqld]
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    
    
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M 
    
    # 以下内容手动添加
    [client]
    port=3307
    default-character-set=utf8
    [mysqld]
    #主库配置
    server_id=1
    log_bin=master-bin
    log_bin-index=master-bin.index
    
    #端口
    port=3306
    character_set_server=utf8
    #解压目录
    basedir=G:Mysqlmysql-5.6.24-winx64
    #解压目录下data目录
    datadir=G:Mysqlmysql-5.6.24-winx64data
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    [WinMySQLAdmin]
    G:Mysqlmysql-5.6.24-winx64inmysqld.exe
    my.ini

       安装主库服务。

      cmd进入主库的bin目录中,如下图:

      

      执行命令:mysqld --install master --defaults-file="G:Mysqlmysql-5.6.24-winx64my.ini"

      注:其中的master为主库mysql的服务名称

       出现以下提示,表示服务安装成功。

      

      启动主库的mysql服务器

      执行命令:net start master

      注:net stop master 为停止命令

        出现以下提示信息表示主库启动成功

      

      使用命令 mysql -uroot -p 登录master数据库(默认安装好的mysql的root用户是没有密码的

      

      登录上之后修改root用户的密码(这里修改成root)

      执行命令

      use mysql;

      update  user set password=password("root") where user="root";

      flush privileges;

      执行完毕后如图:

      

      这样就设置好了root用户的密码了。

      

    2)从库(slave)的安装与配置  

       进入主库mysql-5.6.38-winx64目录中,在此目录中新建my.ini文件并添加一下配置。

      

      具体文件内容如下,将里面的路径修改成你自己的从库路径。

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    
    [mysqld]
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    
    
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M 
    
    # 以下内容手动添加
    [client]
    port=3307
    default-character-set=utf8
    [mysqld]
    #从库配置
    server_id=2
    relay-log-index=slave-relay-bin.index
    relay-log=slave-relay-bin
    #端口
    port=3307
    character_set_server=utf8
    #解压目录
    basedir=G:Mysqlmysql-5.6.38-winx64
    #解压目录下data目录
    datadir=G:Mysqlmysql-5.6.38-winx64data
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    [WinMySQLAdmin]
    G:Mysqlmysql-5.6.38-winx64inmysqld.exe
    my.ini

      安装从库服务。

      cmd进入从的bin目录中,如下图:

      

      执行命令:mysqld --install slave --defaults-file="G:Mysqlmysql-5.6.38-winx64my.ini"

      注:其中的slave为主库mysql的服务名称

       出现以下提示,表示服务安装成功。

      

      启动从的mysql服务器

      执行命令:net start slave

      注:net stop slave为停止命令

        出现以下提示信息表示主库启动成功

      

      同样的登录从库修改从库root用户的密码为root

      执行命令

      use mysql;

      update  user set password=password("root") where user="root";

      flush privileges;

      执行完毕后如图:

      

      至此,主、从数据库的安装及配置就完成了。

    三、关联主库(master)与从库(slave)

      上面我们已经把master和slave相关配置文件都已添加,并分别启动了master与slave,现在我们分别登录到master和slave的mysql中,如图:

      master的mysql 执行命令 show master status查看master的状态

      

      slave的mysql  执行命令 show slave status查看slave的状态

      

      我们可以发现 ,master的状态下,生成了一个二进制的日志文件,而slave下是空的,所以我们现在就要把主库与从库关联起来。只需要让从库(slave)知道主库(master)

       的地址就可以了。

      首先我们需要在主库(master)中创建一个用户用于与从库同步的用户名和密码(这里我创建一个test用户,密码为mysql),并给test用户授权,以用于主库操作从库。

      具体如下:

      

      相关命令:
      create user test;
      grant replication slave on *.* to '从库用户名(test)'@'从库主机地址(127.0.0.1)'identified by '密码(mysql)';
      flush privileges;

      现在我们切到从库(slave),把主库与从库联系起来。

      执行以下命令:

      change master to master_host='127.0.0.1',master_port=3306,master_user='test',master_password='mysql',master_log_file='master-bin.000001',master_log_pos=0;

       然后执行命令 start slave 开启主从同步

      如下图:

      

      然后执行命令查看 slave的状态

      show slave status G;

      出现如下图,则开启主从跟踪成功

      

      至此,主从跟踪已经开启,并全部配置完成

     四、验证主从同步

      我们进入master和slave并查看他们的数据库,如下图:

      然后我们在主库中创建一个数据库user,看一下从库有没有变化。

      

    至此,主从同步已配置完毕。

    说明:注意不要往从库中写数据,如果从库写入数据,master_log_pos是不会变化的,主库的信息没有发生变化,当主库又变化和从库一样的操作时就有可能会产生冲突,因此,只能在主库中写数据,从库只能读数据,当然主库也可以读数据。

      

      

  • 相关阅读:
    三个心态做人做学问 沧海
    成功走职场要找准自己的"快捷键" 沧海
    免费离线下载 拂晓风起
    Hibernate 获取某个表全部记录时 奇怪现象 (重复出现某个记录) 拂晓风起
    无法读取mdb 如果连接不了ACCESS mdb文件,就尝试安装MDAC 拂晓风起
    Netbeans 使用 Hibernate 逆向工程 生成hbm和pojo 拂晓风起
    如何点击单选框 radio 后面的文字,选中单选框 拂晓风起
    Java 连接access 使用access文件 不用配置 拂晓风起
    mysql下如何执行sql脚本 拂晓风起
    Hibernate配置access Hibernate 连接 access 拂晓风起
  • 原文地址:https://www.cnblogs.com/naruto123/p/8138708.html
Copyright © 2011-2022 走看看