zoukankan      html  css  js  c++  java
  • MySQL主从同步技术

    一,先装mysql

    准备两台服务器,主服务器是10.0.0.200  副服务器是10.0.0.128
    主服务器当作mysql的服务端,下载mysql-server
    yum install mysql-server
    副服务器当作mysql的客户端,下载mysql
    yum install mysql

    服务端

    service mysqld start  # 启动服务
    mysql -uroot -p # 登陆
    #密码为空,直接回车就登陆进来了
    show database; # 显示库
    create user 'xiaoming'@'10.0.0.128' identified by '123456'; # 新建用于同步的账号xiaoming,允许同步的从库地址是10.0.0.128,密码是123456
    create user 'xiaoming'@'%' identified by '123456'; # 新建用于同步的账号xiaoming,允许所有从库登陆,密码是123456
    flush privileges; # 立即刷新

    客户端  从库

    mysql -uroot -p -h10.0.0.200  # 登陆mysql服务端
    123456 # 紧接着输入密码
    # 然后就登陆进来了

     二,mysql主从复制配置

    原理:主库里面执行sql语句(data changes),数据变动之后,它会将这些变动存到自己的日志(binary log)里面去,里面村的二进制。然后日志内容交给从库,从库就从这些二进制中读取变动,然后将这些变动写入自己的日志(Realy log),然后从库将这些变动转化为sql语句并执行sql语句。这样就完成了数据同步的作用。

     2.1 主库添加配置

    # 在根目录,不在mysql中
    vim /etc/my.cnf # mysql服务端配置默认在根目录里的etc里面的一个my.cnf文件里面
    # 添加到[mysqld]的下面
    server-id=1
    log-bin=mysql-bin # 日志,注意名字不固定,可以叫mysql-s,就是通过这个配置,实现了写入日志的功能
    # 然后保存退出
    service mysqld restart # 重启mysql服务端

    2.2 主库添加从库账号,要通过一个账号同步

    create user 'xiaoming'@'10.0.0.128' identified by '123456';  # 新建用于同步的账号xiaoming,允许同步的从库地址是10.0.0.128,密码是123456
    grant replication slave on *.* to 'xiaoming'@'10.0.0.128'; # 远程授权授权给地址为10.0.0.128的xiaoming账号的所有库所有表

    2.3 查询主库的状态

    show master status;
    mysql> show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 |      370 |              |                  |
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)
    mysql-bin.000001这个文件就是主库里面的Binary log日志文件
    File是二进制日志文件名,Position 是日志开始的位置。后面从库会用到 后面从库会用到 后面从库会用到!

    change master to master_host='10.0.0.200',
    master_user='xiaoming',
    master_password='123456',
    master_log_file=mysql-bin.000001',

    master_log_pos=370;

  • 相关阅读:
    实验六 进程基础
    实验五 shell脚本编程
    实验四 Linux系统搭建C语言编程环境
    实验三 Linux系统用户管理及VIM配置
    实验二 Linux系统简单文件操作命令
    实验一 Linux系统与应用准备
    实验八 进程间的通信
    实验七 信号
    实验六 进程基础
    实验五 shell脚本编程
  • 原文地址:https://www.cnblogs.com/aaronthon/p/9506638.html
Copyright © 2011-2022 走看看