• Linux两台服务器mysql数据库同步


    我们在做web系统部署的时候往往涉及到两台甚至多台数据库的备份,为了数据安全考虑(虽然说到底不过是一堆0 1,但是价值千金啊),所以我们还是乖乖做同步把!

    1、准备两台Linux服务器(主、从)

    2、安装好Mysql

    3、在配置文件/etc/my.cnf(MySQL中为mysql.ini)修改开启二进制日志

    log-bin=mysql-bin
    
    修改方法:打开配置文件后在
    
    [mysqld]中添加内容:
    
    server-id = 1  #确保在整个MySQL集群中唯一
    
    log-bin=/var/log/mysql/mysql-bin.log  #日志存放位置
    
    log-bin-index = binlog.index

    4、重启mysql服务​

    service mysql restart

    5、查看配置是否正常

    ​show variables like 'log-bin';

    6.开始主从复制

    第一步:在主服务器中创建一个从服务器中可以登陆的MySQL用户

    mysql>GRANT REPLICATION SLAVE ON *.*TO '用户名'@'从服务器ip' IDENTIFIED BY '密码';
    
    mysql>FLUSH PRIVILEGES;

    第二步:查看主服务器MySQL二进制文件名和位置

    mysql> SHOW MASTER STATUS;

    第三步:告知二进制文件名和位置

    在从服务器中执行(注意标点符号,最后才是分号)

    mysql > CHANGE MASTER TO
    
          >MASTER_HOST='主服务器地址',
    
          >MASTER_USER='创建的用户名',
    
          >MASTER_PASSWORD='密码',
    
          >MASTER_LOG_FILE='mysql-bin.000048(根据自己的修改)'>MASTER_LOG_POS=432(自己修改);

    完成主从复制;

    7、测试主从复制

    在从服务器中执行

    mysql > START SLAVE;      #开启复制mysql
    
          > SHOW  SLAVE  STATUSG;  #查看主从复制是否成功
    Linux下两台服务器mysql数据库同步
                    数据库同步成功

    当看到Slave_IO_Running: YES、Slave_SQL_Running:

    YES才表明状态正常

    8、实际测试:

    登陆主服务器主MySQL:show database;

    登陆从服务器MySQL:show databases;

    主数据库进行如下操作:

    (1)创建数据库和表

    ​create database test; use test;
    
    create table tab1(id int auto_increment,name varchar(10),primary key(id));
    
    show databases;
    
    show tables;

    (2)从数据库也查看数据库和表,看数据是否同步了

    9、出错请看

    问题一:mysql服务器启动不了

    出错:Starting MySQL... ERROR! The server quit without updating PID file

    解决办法:找到mysql安装目录下面的data目录,删除mysql-relay-log.index

    问题二:不能同步

    进入slave服务器,运行:

    mysql > show slave statusG;
    
            .......

    解决办法一:

    Slave_SQL_Running: No

    1.程序可能在slave上进行了写操作

    2.也可能是slave机器重起后,事务回滚造成的.

    一般是事务回滚造成的:

    解决办法二:

    mysql > stop slave;
    
    mysql > set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
    
    mysql > start slava;

    注意:如果实在不行就在从服务器里边执行如下操作

    mysql > stop slave; 
    
          >reset  slave;
    
          > 重新配置同步(见第六步)
    
          >start  slave;

    至此数据库同步完成!

         当你发现自己的才华撑不起野心时,就请安静下来学习吧!

  • 相关阅读:
    Docker Machine 管理-管理machine(17)
    Docker Machine 管理-创建machine(16)
    Docker Machine 管理-安装docker-machine(15)
    kvm无人值守安装centos6
    存储-docker volume 生命周期管理(14)
    存储-docker数据共享(13)
    存储-docker存储(12)
    网络-Docker 提供的几种原生网络和自定义网络(11)
    docker容器管理-含静态Ip(10)
    rocketmq单点部署
  • 原文地址:https://www.cnblogs.com/marshu/p/9849620.html
Copyright © 2020-2023  润新知