盒子
盒子
文章目录
  1. 安装mysql
  2. 配置主(master)
  3. 配置从slave
  • 测试MySQL的主从备份
  • '实现mysql的主从备份'

    # 实现mysql的主从备份

    如想了解更多的主从配置点击跳转

    安装mysql

    安装步骤省略,详情可以查看点击跳转
    我这里为两台centos安装MySQL5.7

    • 一台后面做为master(主)192.168.25.5
    • 一台做为从(slave )192.168.25.6

    为减少不必要的麻烦,最好保证master的mysql的数据与slave的数据库一致

    配置主(master)

    亲先将防火墙关闭

    systemctl disable firewalld.service

    第一步:修改/etc/my.conf文件

    该文件在window下为C:\ProgramData\MySQL\MySQL Server 5.7\my.ini

    在[mysqld]中添加:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    binlog-ignore-db=mysql
    log-bin=master_log
    server-id=1
    #这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突
    auto_increment_offset = 1
    #这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突
    auto_increment_increment = 1
    #将函数复制到slave
    log_bin_trust_function_creators = 1

    • server-id
      master端的ID号;Master的server-id必须小于slave的server-id
    • log-bin
      同步的日志路径及文件名,主从备份时必须要有,这个目录要是mysql有权限写入的,最后的日志文件名称就是你命名的再加上后期mysql会自动加上文件名后缀和文件类型(如master_bin.00001)
    • binlog-ignore-db:
      不同步数据库(我这里是mysql)

    第二步:重启mysql服务

    systemctl restart mysql

    第三步:建立帐户并授权slave
    说明其它主机可以使用slave这个用户账号来登陆master主机的MySQL(如果在授权的用户不存在就会自动创建),一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。
    * .
    mysql> GRANT ALL PRIVILEGES ON
    .* TO ‘slave‘@’%’ IDENTIFIED BY ‘123456’;

    第四步:刷新权限

    mysql> FLUSH PRIVILEGES;

    第五步:查看mysql现在有哪些用户
    mysql安装完成以后会有一个叫做mysql的数据库,其中有一张表叫做user,主要字段有user,host等等,记录的就是mysql的用户情况

    mysql>select user,host from mysql.user;

    第六步:查询master的状态

    show master status;
    show master status\G;

    请记住红线
    请记住

    配置从slave

    第一步:修改/etc/my.conf文件

    在[mysqld]中添加

    1
    server_id = 2

    还有许多其它选项,请查看官方文档,我这就不再多说

    第二步:修改uuid
    主从模式要求mysql的物理名称不能一致,而我这里的两台的机器是因为是克隆的,所以一样,我需要修改,如果你不是,可省略该步骤

    vim var/lib/mysql/auto.conf (或者删除/var/lib/mysql/auto.cnf文件)

    给予server-uuid一个随意值即可(可以直接改变最后一位数值),再重新启动服务mysql

    systemctl restart mysql

    第三步:关闭slave功能
    因为MySQL5.5以后默认开启slave功能,所以这里先停止slave

    mysql>stop slave;

    第三步:在slave中执行同步命令

    1
    2
    #执行同步命令,设置主服务器ip,同步账号密码,同步位置
    mysql>change master to master_host='192.168.25.5',master_port=3306,master_user='slave',master_password='123456',master_log_file='master_log.000001';

    注意语句中间不要断开,master_port为mysql服务器端口号(无引号),master_user为执行同步操作的数据库账户(前面在master上使用grant),这里的master_log.000001就是log-bin对应的值)。

    第四步:开启同步功能

    mysql>start slave;

    测试MySQL的主从备份

    测试就是在主库中进行DDL以及DML语句的执行,看从库是否会跟主库一样发生变化

    master中

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create database test;
    use test;

    CREATE TABLE `test` (
    `id` int(255) NOT NULL AUTO_INCREMENT,
    `username` varchar(255) DEFAULT NULL,
    `password` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

    insert into test(username,passwor) values('gxm','123456');

    查看master与slave是否都有变化,如果数据一致,就配置成功

    希望对您有所帮助
    May all the ordinary are great, all the ignoble bloom
    • smile