• MySQL基础之二:主从复制


    # mysql主从复制逻辑:
    1.从库执行start slave 开启主从复制。
    2.从库请求连接到主库,并且指定binlog文件以及位置后发出请求。
    3.主库收到从库请求后,将信息返回给从库,除了信息日志外,还包含新的文件名称以及下一个更新节点。
    4.从库接收到主库发送的信息后,会将信息更新至自身的relay log中,并且将新的文件名记录到master-info中。
    5.从库SQL线程会检测本地relay-log,如有变化,会将信息解析为SQL可执行语句并且执行该语句,同时在relay-log.info中记录当前文件名以及位置点。
    mysql 主从复制操作方法:
    
    # 主库:
    1.保证bin-log的开启(可在mysql中利用 show variables where variable_name like 'bin%' 中查看,其中栏位值为ON则为开启,OFF则为关闭 bin-log具体逻辑取决于my.cnf设定值中的bin-log)
    2.新建用户并且设定其为replication slave账户(grant replication slave on db_name.tb_name to 'user_name'@'host_name' identified by 'password';)
    3.对主库锁表只读(flush table with read lock;)
    4.收集master的信息,包括(replication slave username and password , master status filename and master status position(get master status: show master status ) )
    5.导出主库数据,解锁(unlock tables;)
    
    # 从库:
    1.将主库数据导入从库
    2.将从库连接主库(change master to master_host='host_name',master_port='master_port',master_user='master_user',paster_password='master_password',master_log_file='master_status_log_file',master_log_pos='master_status_log_position');
    3.开启主从复制,start slave; 查看从库状态是否OK(show slave statusG;)如果确定状态为NO时,则需要重新启动master和slave,再次检查状态是否OK
    # 主库配置
    vim /etc/my.cnf
    ##############################################
    [mysqld]
    datadir = /data/mysql
    socket = /tmp/mysql.sock
    basedir = /usr/local/mysql
    user = mysql
    port = 3306
    server-id = 97
    log-bin = mysql-bin
    slow_query_log_file = /var/log/mysql/slow.log
    slow_query_log = 1
    symbolic-links = 0
    log-error=/var/log/mysql/mysql_error.log
    ##############################################
    
    # 从库配置
    vim /etc/my.cnf
    ##############################################
    [mysqld]
    datadir = /data/mysql
    socket = /tmp/mysql.sock
    basedir = /usr/local/mysql
    user = mysql
    port = 3306
    server-id = 98
    log-bin = mysql-bin
    # slave开启只读权限
    read_only = 1
    # 打开中继日志
    relay_log = /var/log/mysql-relay-bin
    slow_query_log_file = /var/log/mysql/slow.log
    slow_query_log = 1
    symbolic-links = 0
    log-error=/var/log/mysql/mysql_error.log
    ##############################################
    
    #在master授权远程登录方式
    mysql > GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by ' Password1!';
    mysql > FLUSH PRIVILEGES;
    
    # 在slave上连接master
    mysql > change master to master_host='172.50.1.97',master_user='root',master_password='Password1!',master_log_file='mysql-bin.000001',master_log_pos=687;
    
    # 在slave上开启slave功能
    mysql > start slave;
    
    # 在slave上查询状态
    mysql > show slave status;
  • 相关阅读:
    反流技术之IE插件技术研究第一部分
    c# post和接收的实现
    C# post提交表单的例程
    用C#搭建IE BHO勾子, 取表单密码
    复杂的 DataBinding 接受 IList 或 IListSource 作为数据源" 错误原来是自己的笔误
    C#判断ContextMenuStrip右键菜单的来源(从哪个控件弹出来的)
    练习5.1
    示例:实用函数(Utilities)
    闭包
    一个错误
  • 原文地址:https://www.cnblogs.com/herui1991/p/11084181.html
Copyright © 2020-2023  润新知