zoukankan      html  css  js  c++  java
  • mysql主从复制

    mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复。

    需要至少两台机器,安装mysql,两台机器要在相通的局域网内,可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。
    注意:从服务器的mysql版本必须高于主服务,因为从服务器读取主服务器的bin_log 日志 在本地执行。
    高版本的能兼容低版本的  低版本的不能兼容高版本的。
    1.打开主机主服务器的my.cnf 编辑,修改主服务器master
    vi /usr/local/mysql/my.cnf
    找到[mysqld]节点 修改或是添加
    #log-bin是指开启二进制操作日志
    log-bin=mysql-log
    #serverid是指他的唯一id,可以理解为IP.所以说以ip的最后三位为id比较合适
    server-id=251
    #需要同步的库. 不写同步所有
    binlog-do-db = 需要同步的数据库,多个用逗号隔开
    2.重启MySQL
    service mariadb(mysqld) restart
    3.添加一个同步用的用户,注意,最好别用root
    GRANT REPLICATION SLAVE ON *.* to '用户'@'%' identified by '密码';
    3.查看主服务器状态
    show master status  看到以下页面成功
    +------------------+----------+--------------+------------------+
       | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
       +------------------+----------+--------------+------------------+
       | mysql-bin.000001 |      308 |              |                  |
       +------------------+----------+--------------+------------------+
       1 row in set (0.00 sec)
    重启.到此为止.服务器的配置完成
    4.修改从服务器slave  即mysql配置文件 步骤同1  id必须唯一
    5.配置从服务器slave 
    change master to master_host='103.212.32.135',
    master_user='用户',
    master_password='密码',
    master_log_file='mysql-bin.000001', 
    master_log_pos=308;
    start slave;
    6.启动从服务器复制功能
    start slave;
    7.检查从服务器复制功能状态
    show slave status G  出现以下说明正确
    Slave_IO_State: Waiting for master to send event
                  Master_Host  主服务器地址
                  Master_User 授权帐户名
                            .........
                  Slave_IO_Running: Yes    //此状态必须YES
                  Slave_SQL_Running: Yes     //此状态必须YES
    注意:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
    到此实现全部过程
    8.可能出现的问题
    a.Slave_IO_Running:connecting    可能原因为主服务器版本高于从服务器
    b.Slave_SQL_Running 值为 NO或 Seconds_Bebind_Master 值为 Null  程序有可能在 slave 上进行了写操作,也有可能是 slave 机器重启后, 事务回滚造成的
    解决方案:
    msyql> stop slave;
     
    msyql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
     
    msyql> start slave;
    9.可能用到的命令
    reset master 清空bin-log日志
    start slave 启动复制线程
    stop slave 停止复制线程
    show processlist  查看从数据库运行的进程
    show binlog events; 只查看第一个binlog文件的内容
    show binlog events in 'mysql-bin.000002';   查看指定binlog文件的内容
    show binary logs;  获取binlog文件列表
    flush logs;刷新
    show variables like "%log_%";  查看 bin-log 日志是否成功开启  on为开启
     
    以上就是这次的全部内容!
  • 相关阅读:
    简体转换繁体
    错误解决:[A potentially dangerous Request.Form value was detected from the client (warning="卡Ć..."). ]
    如何准备软件工程师的面试[转Google]
    Microsoft New DownLoad Address [Share]
    仿windows关机对话框的提示框效果
    JS弹出窗口的运用与技巧
    2007新年贺语
    VSTOexcel编程 [待续] [12月5日更新,详见文档下面]
    常用的SQL和TSQL语句(一)
    常用的SQL和TSQL语句(三)行列转换
  • 原文地址:https://www.cnblogs.com/jingxiaoniu/p/6783123.html
Copyright © 2011-2022 走看看