• 数据库主从复制实操


     整体思路

    1.锁定主数据库,只允许读取不允许写入

    2.配置主数据库文件

    3.导出主数据库文件,复制到从服务器,让从服务器导入

    4.登录主数据库创建同步账号并授权

    5.配置从数据库文件

    6.在从数据库中配置同步信息

    7.开启同步并查看状态

    8.解锁主数据库

    先修改主数据库的my.cnf

    vim /etc/my.cnf

    在[mysqld]下添加

    server-id = 128
    log-bin=mysql-bin

    重启mysql

    service mysqld restart

    验证是否有开启二进制日志,配置正确自然就开启了

    show variables like 'log_bin';

    锁定主数据库

    锁定主数据库,只允许读取不允许写入,这样做的目的是防止备份过程中或备份完成之后有新数据插入,导致备份数据和主数据数据不一致。

    mysql -uroot -p;

    mysql> flush tables with read lock;

    查看当前数据库的二进制日志写到什么位置(只有打开二进制日志,这句命令才有结果)

    然后备份主数据库
    mysqldump -uroot -p --all-databases --lock-all-tables > ~/master_db.sql

    一.先在另外一台机器上安装一模一样的mysql数据库
    1.关闭防火墙
    [root@oracle-1 jk]# systemctl stop firewalld
    [root@oracle-1 jk]# systemctl disable firewalld
    2.永久关闭SELinux
    vi /etc/selinux/config
    将SELINUX=enforcing改为SELINUX=disabled
    设置后需要重启才能生效
    3.从服务器ip为:
    主服务器ip为:
    mysql版本为:
    查看mysql版本:mysql -V 或者mysql --version
    查看mysql安装目录:whereis mysql
    4.
    mysqldump -uroot -p --all-databases --lock-all-tables > ~/master_db1.sql
    scp master_db1.sql root@192.168.110.129:/root
    mysql -uroot -p < master_db1.sql

     同样,在接下来的从数据库中进行配置

    vim /etc/my.cnf

    在[mysqld]下添加

    server-id = 129
    log-bin=mysql-bin

    必须保证主服务器和从服务器上的server-id的值不能相同

    重启mysql
    service mysqld restart

    验证是否有开启二进制日志,配置正确自然就开启了

    show variables like 'log_bin';

    主服务器

       show master status;

     这两个要用到


    最重要的
    进入从服务器的mysql执行
    change master to master_host='192.168.110.128', master_user='slave', master_password='Slave123@',master_log_file='mysql-bin.000001', master_log_pos=582;

    同款

    change master to master_host='192.168.139.161', master_user='slave', master_password='JieYislave@123',master_log_file='mysql-bin.000001', master_log_pos=294;

    BrsA)-GPh5Pq
    set password for 'root'@'localhost' =password('Rootroot123456@');

    grant all privileges on *.* to root@'localhost' identified by 'Rootroot123456@';

    GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'Slave123@';
    FLUSH PRIVILEGES;


    mysql> show master status;
    show master status;
    | mysql-bin.000001 | 582 |

    [root@localhost ~]# cd /
    [root@localhost /]# find -name auto.cnf
    ./var/lib/mysql/auto.cnf

    start slave;

    查询同步状态

    show slave status G

    最后解锁主数据库
    mysql> unlock tables;
    Query OK, 0 rows affected (0.00 sec)

  • 相关阅读:
    矩阵求导笔记
    Saliency map实现
    lime用法浅析
    LeetCode 989. 数组形式的整数加法
    题解:[P1009 阶乘之和]
    P1008三连击
    vim-2
    c#基础零碎记录
    asp.net core MySQL 數據遷移
    虚函数
  • 原文地址:https://www.cnblogs.com/spdb/p/14434845.html
Copyright © 2020-2023  润新知