windows下 mysql 主从复制 2台服务器操作

windows下 mysql 主从复制 2台主机

  • 主服务器上操作:
  • 从服务器上操作:

为什么要主从同步?

在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一。尤其是在大规模系统中,数据库集群已经成为必备的配置之一。集群的好处主要有:查询负载、数据库复制备份等。其中Master负责写操作的负载,也就是说一切写的操作都在Master上进行,而读的操作则分摊到Slave上进行。这样一来的可以大大提高读取的效率。写操作涉及到锁的问题,不管是行锁还是表锁还是块锁,都是比较降低系统执行效率的事情。我们这样的分离是把写操作集中在一个节点上,而读操作其其他的N个节点上进行,从另一个方面有效的提高了读的效率,保证了系统的高可用性。

自己将本地电脑用水星路由器设置内网穿透,以便提供给外网服务器使用,

以下是主从的配置

主:183.X.X.X (本地)
从:47.X.X.X (阿里云)

主服务器上操作:

  • 修改主数据库my.ini配置

    关闭 mysql服务。

    >net mysql stop

    [mysqld]
    port=3306
    
    #用于标识唯一的数据库,在从库必须设置为不同的值。
    server-id=1
    #同步日志的保存路径,也可以直接写成mysql-bin,直接写mysql-bin日志文件会生成到data文件夹的根目录
    log-bin = mysql-bin
    #指定需要同步的数据库
    binlog-do-db=需要同步的数据库(数据库名称和结构必须和从库保持一致)
    

    修改完成之后打开cmd

    开启mysql服务。

    >net mysql start

  • 添加主数据库用于同步的账号:

    在主库中建立一个用户(专门用给从库连接的,注意这是在主库里面建立的)

    cmd输入下面命令连接到Mysql服务

    >mysql -hlocalhost -uroot -p;

    然后执行以下命令创建用户:

    mysql>grant replication slave,reload,super on . to 新建用户名@‘从服务器ip’ identified by ‘新密码’ ;

    刷新权限命令

    mysql>flush privileges;

    找到File 和 Position 的值记录下来

    mysql>show master status;

    可以直接在navicat上查看
    windows下 mysql 主从复制 2台服务器操作_第1张图片

从服务器上操作:

  • 修改从数据库my.ini配置

    关闭 从库mysql服务。

    >net mysql stop

    修改从数据库my.ini配置,只用设置下面2个

    [mysqld]
    port=3306
    #用于标识唯一的数据库,在从库必须设置为不同的值。
    server-id=2
    
    #待同步的数据库
    binlog-do-db=需要同步的数据库(数据库名称和结构必须和主库保持一致)
    

    修改完成之后打开cmd

    然后使用 >net mysql start 重启mysql服务。

  • slave连接master库

    关闭slave服务,执行下面命令

    mysql> stop slave;

    执行下面命令

    mysql> change master to master_host=‘主ip地址’,master_user=‘user’,master_password=‘123456’, master_log_file=‘mysql-bin.000005’,master_log_pos=35546,master_port=3306;

    master_host=‘主ip地址’,
    master_user=‘你创建的用户’,
    master_password=‘密码’,
    master_log_file=‘show master status查到的值’,
    master_log_pos=show master status查到的值,
    master_port=3306; //主端口

    打开slave服务

    mysql> start slave;

    #“查看连接状态,主要看Slave_IO_Running、Slave_SQL_Running。它们2个的值都必须是Yes才可以,不能是其他的Connecting之类”

    mysql> show slave status;

    如出现yes表示成功
    在这里插入图片描述

你可能感兴趣的:(mysql)