• VMware——WindowServer2012R2环境mysql5.7.14解压版安装主从复制(图解版)


    一、服务器信息

    服务器ip服务器角色
    192.168.132.33
    192.168.132.33

    二、192.168.132.33主服务器上安装mysql(

    2.1、环境变量配置

    • 解压版mysql-5.7.14-winx64.zip版本mysql到C:\software\目录下
      在这里插入图片描述
    • 右击计算机―【属性】―【高级系统设置】―【环境变量】-【系统变量】-【新建】
      说明:由于我把mysql安装在C:\software\mysql-5.7.14-winx64文件下所以以这个路径为例
      变量名:MYSQL_HOME
      变量值:C:\software\mysql-5.7.14-winx64
      在这里插入图片描述
    • 找到系统变量“Path”然后点击【编辑】按钮。在变量值后面加上【 ;%MYSQL_HOME%\bin;】一定要记住每增加一条变量都要用分号隔开,点击【确认】
      变量名:Path
      变量值:在原有的值后面加上:;%MYSQL_HOME%\bin;
      在这里插入图片描述

    2.2、安装

    2.2.1、修改配置文件内容
    • 找到mysql安装目录,my-default.ini重命名为my.ini,编辑my.ini文件内容,如下:

      [mysql]
      port = 3306
      default-character-set=utf8
      [mysqld]
      port = 3306
      basedir=C:\\software\\mysql-5.7.14-winx64
      datadir=C:\\software\\mysql-5.7.14-winx64\\data
      max_connections=200
      character-set-server=utf8
      default-storage-engine=INNODB
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11

      在这里插入图片描述

    2.2.2、初始化mysql并指定超级用户密码
    • 启动命令行,将目录切换到mysql安装目录的bin目录下。在命令行执行命令:结果如下图所示,记住下图中红框位置这个 临时密码。

      mysqld --initialize --user=mysql --console
      
      • 1

      在这里插入图片描述

    2.2.3、安装mysql服务
    • 执行mysqld --install命令,返回结果:Service successfully installed。表示成功,如下图:

    在这里插入图片描述

    • 快捷键win+r,执行services.msc查看服务,看看mysql服务是否已出现,如下图表示ok。
      在这里插入图片描述
    2.2.4、启动mysql服务
    • 执行如下命令,启动mysql服务,如下图:

      net start mysql 
      
      • 1

    在这里插入图片描述

    • 如果发生错误:执行mysqld -remove命令移除mysql服务,然后执行mysqld --install重新安装,最后在执行net start mysql启动服务。

      #移除mysql服务
      mysqld -remove
      #重新安装
      mysqld --install
      #启动服务
      net start mysql
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 如果无法启动程序,丢失MSVCR120.dll,这是微软官网的链接 https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=40784 下载自己对应的版本,安装,一般可以解决。
      在这里插入图片描述

    2.2.5、登录用户管理及密码修改
    • 输入命令行如下命令,利用之前的临时密码输入即可登录数据库

      mysql -u root -p
      
      • 1

      在这里插入图片描述

    • 修改root用户密码

      SET PASSWORD = PASSWORD('123456');
      update mysql.user set Host='%' where HOST='localhost' and User='root';
      flush privileges;
      
      • 1
      • 2
      • 3

      在这里插入图片描述

    2.2.6、开启远程访问
    • 查询所有数据库,进入mysql库,查询用户。
      说明:host为localhost表示只允许本地登录,host为ip表示为只允许指定ip用户登录,host为%为允许任意ip用户登录

      #查询所有数据库
      show databases;
      #进入mysql库
      use mysql;
      #查询用户
      select user,host from user; 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

    在这里插入图片描述

    • 新建允许远程链接mysql数据库的test用户

      #表示创建一个登录名为test,密码为123456供任意ip访问的用户(%可用具体ip替代)
      grant all on *.* to test@'%' identified by '123456' with grant option;
      flush privileges;
      
      • 1
      • 2
      • 3

    在这里插入图片描述

    三、192.168.132.34从服务器上安装mysql(

    • 安装步骤与192.168.132.33服务器上安装mysql()步骤相同。

    四、mysql主从配置

    4.1、修改两台服务器上mysql配置文件

    4.1.1、修改192.168.132.33主服务器上mysql配置(
    • 修改192.168.132.33主服务器my.ini文件中的配置,在[mysqld]部分增加如下内容,(server_id的值要与从服务器不同,其他内容相同,binlog_do_db的值为需要进行主从备份的数据库)

      init_connect='SET NAMES utf-8'
      innodb_buffer_pool_size=64M
      innodb_flush_log_at_trx_commit=1
      innodb_lock_wait_timeout=120
      innodb_log_buffer_size=4M
      innodb_log_file_size=256M
      interactive_timeout=120
      join_buffer_size=2M
      key_buffer_size=32M
      max_allowed_packet=16M
      max_heap_table_size=64M
      myisam_max_sort_file_size=64G
      myisam_sort_buffer_size=32M
      read_buffer_size=512kb
      read_rnd_buffer_size=4M
      skip_external_locking=on
      sort_buffer_size=256kb
      table_open_cache=256
      thread_cache_size=16
      tmp_table_size=64M
      wait_timeout=120
      server_id =1
      log_bin=C:\\software\\mysql-5.7.14-winx64\\mysqlbin
      #binlog记录内容的方式,记录被操作的每一行
      binlog_format=ROW
      #减少记录日志的内容,只记录受影响的列
      binlog_row_image=minimal
      #指定需要复制的数据库名为db_test,如果备份多个数据库,重复设置这个选项即可
      binlog_do_db=db_test
      #不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
      binlog_ignore_db=mysql
      binlog_ignore_db=performance_schema
      binlog_ignore_db=information_schema
      binlog_ignore_db=sys
      # 这个参数要加上,否则不会给更新的记录些到二进制文件里(未测试)
      log-slave-updates=1
      #开启慢查询日志
      slow_query_log=1
      slow_query_log_file=C:\\software\\mysql-5.7.14-winx64\\mysql_slow_query.log
      long_query_time=10
      log_error=C:\\software\\mysql-5.7.14-winx64\\mysql_error.log
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
    • 重启192.168.132.33主服务器MySQL服务
      在这里插入图片描述

    4.1.2、修改192.168.132.34从服务器上mysql配置(
    • 修改192.168.132.34从服务器my.ini文件中的配置,在[mysqld]部分增加如下内容,(server_id 的值要与主服务器不同,其他内容相同,binlog_do_db的值为需要进行主从备份的数据库)

      init_connect='SET NAMES utf-8'
      innodb_buffer_pool_size=64M
      innodb_flush_log_at_trx_commit=1
      innodb_lock_wait_timeout=120
      innodb_log_buffer_size=4M
      innodb_log_file_size=256M
      interactive_timeout=120
      join_buffer_size=2M
      key_buffer_size=32M
      max_allowed_packet=16M
      max_heap_table_size=64M
      myisam_max_sort_file_size=64G
      myisam_sort_buffer_size=32M
      read_buffer_size=512kb
      read_rnd_buffer_size=4M
      skip_external_locking=on
      sort_buffer_size=256kb
      table_open_cache=256
      thread_cache_size=16
      tmp_table_size=64M
      wait_timeout=120
      server_id =2
      log_bin=C:\\software\\mysql-5.7.14-winx64\\mysqlbin
      #binlog记录内容的方式,记录被操作的每一行
      binlog_format=ROW
      #减少记录日志的内容,只记录受影响的列
      binlog_row_image=minimal
      #指定需要复制的数据库名为db_test,如果备份多个数据库,重复设置这个选项即可
      binlog_do_db=db_test
      #不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
      binlog_ignore_db=mysql
      binlog_ignore_db=performance_schema
      binlog_ignore_db=information_schema
      binlog_ignore_db=sys
      # 这个参数要加上,否则不会给更新的记录些到二进制文件里(未测试)
      log-slave-updates=1
      #开启慢查询日志
      slow_query_log=1
      slow_query_log_file=C:\\software\\mysql-5.7.14-winx64\\mysql_slow_query.log
      long_query_time=10
      log_error=C:\\software\\mysql-5.7.14-winx64\\mysql_error.log
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
    • 如果是复制的192.168.132.33服务器到192.168.132.34服务器,需要修改192.168.132.34服务器C:\software\mysql-5.7.14-winx64\data\auto.conf文件中的值,需要与192.168.132.33服务器中的值不同。
      一定要修改值不一样,此处大坑。。。。。。

    • 重启192.168.132.34从服务器MySQL服务
      在这里插入图片描述

    4.2、创建两台服务器Replication用户

    4.2.1、192.168.132.33主服务器上创建Replication用户(
    • 创建Repl用户

      grant all on *.* to 'repl'@'%' identified by '123456' with grant option;
      grant replication slave on *.* to 'repl'@'%';
      grant replication client,replication slave on *.* to 'repl'@'%' identified by '123456';
      flush privileges;
      
      • 1
      • 2
      • 3
      • 4

    在这里插入图片描述

    4.2.2、192.168.132.34从服务器上创建Replication用户(
    • 创建Repl用户

      grant all on *.* to 'repl'@'%' identified by '123456' with grant option;
      grant replication slave on *.* to 'repl'@'%';
      grant replication client,replication slave on *.* to 'repl'@'%' identified by '123456';
      flush privileges;
      
      • 1
      • 2
      • 3
      • 4

    在这里插入图片描述

    4.3、查看192.168.132.33主服务器的mysql bin log位置(

    • 查看192.168.132.33主服务器上mysql bin log位置,执行如下命令:

      #锁定表,禁止所有操作。防止bin log位置发生变化
      flush tables with read lock;
      #查看192.168.132.33主服务器上bin log位置
      show master status;
      #解除192.168.132.33主服务器上mysql table的锁定
      unlock tables;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 其中file的值mysqlbin.000005和Position的值154在从库设置Slave Replication中会使用到 ,执行如下命令:

      在这里插入图片描述

    4.4、设置192.168.132.34从服务器的Slave Replication(

    • 设置192.168.132.34从服务器上的Slave Replication,执行如下命令:

      stop slave;
      change master to master_host = '192.168.136.33', master_user = 'repl', 
      master_password = '123456', master_port = 3306, master_connect_retry=30, master_log_file = 'mysqlbin.000005',master_log_pos = 154; 
      start slave;
      
      • 1
      • 2
      • 3
      • 4

      在这里插入图片描述

    4.5、查看192.168.132.34从服务器是否设置成功

    • 查看192.168.132.34从服务器是否设置成功,执行如下命令:

      show slave status\G;
      
      • 1
    • 其中Slave_IO_Running:Yes Slave_SQL_Running:Yes表示主从复制已成功,如下图:
      在这里插入图片描述

    五、mysql主从复制测试

    5.1、192.168.132.33主服务器创建数据库

    • 创建db_test数据库,创建表t_user并新增一条数据,如下图:
      在这里插入图片描述

    5.2、192.168.132.34从服务器查看192.168.132.33主服务器创建的数据库

    • 查看db_test数据库、t_user表及表中数据,如下图:

      在这里插入图片描述

  • 相关阅读:
    SpringBoot+Vue项目教材订购系统
    “当下的力量”9月读书笔记
    Postman —— postman实现参数化
    分布式执行引擎ray入门--(3)Ray Train
    如何查看dll文件内导出函数名称
    Python爬虫编程思想(157):使用Scrapy从CSV格式转换到JSON格式
    Python 网页请求:requests库的使用
    【数据库专家揭秘】MySql数据库设计黄金法则,让你的数据更稳定、更高效!
    数据结构-----二叉排序树
    TSINGSEE视频AI智能分析技术:水泥厂安全生产智能监管解决方案
  • 原文地址:https://blog.csdn.net/li1325169021/article/details/134496131