• mysql主从同步配置


    1.为什么要主从同步?

      在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一。尤其是在大规模系统中,数据库集群已经成为必备的配置之一。集群的好处主要有:查询负载、数据库复制备份等。其中Master负责写操作的负载,也就是说一切写的操作都在Master上进行,而读的操作则分摊到Slave上进行。这样一来的可以大大提高读取的效率。写操作涉及到锁的问题,不管是行锁还是表锁还是块锁,都是比较降低系统执行效率的事情。我们这样的分离是把写操作集中在一个节点上,而读操作其其他的N个节点上进行,从另一个方面有效的提高了读的效率,保证了系统的高可用性。

    2.mysql主从同步

       我的要同步的两台mysql数据库版本都是mysql5.7,两台电脑都在同一个网段之中。

       ①修改主数据库my.ini/my.cnf配置:

       Server-id = 1  //这是数据库ID,此ID是唯一的,ID值不能重复,否则会同步出错;

       log-bin = mysql-bin //开启binglog日志,二进制日志文件,此项为必填项,否则不能同步数据

    binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed

       binlog-do-db = testcreate  //需要同步的数据库,如果还需要同步另外的数据库,那么继续逐条添加,如果 不写,那么默认同步所有的数据库;

       binlog-ignore-db = mysql //不需要同步的数据库;

     修改完成之后重启mysql服务。

    MySQL 服务重启

    service mysqld restart 

       ② 添加主数据库用于同步的账号:

       给主数据库授权一个可以进行复制的用户,执行如下命令:

       grant replication slave on *.* to 'slave'@'%' identified by '123456';

          

       ③显示主数据库的同步信息:

              

       可以看出已经产生了二进制的日志文件信息,mysql的同步就是通过这个二进制日志文件进行同步,主数据库把对数据库的操作的指令都记录到该日志文件下,从数据库通过读取该文件,来对从数据库中的数据进行修改,从而达到主从同步的效果。

       ④配置从数据库的my.ini

       从数据库的话只需要配置server-id,binlog-do-db,binlog-ignore-db即可。    

       ⑤设置从数据库链接到主数据库

       在mysql下执行stop slave;命令,停止slave服务;

          mysql> change master to

           -> master_host='192.168.1.189',

           -> master_user='slave',

           -> master_password='123456',

           -> master_log_file='mysql-bin000014.000001',

          -> master_port=3306,

           -> master_log_pos=107;

        注意:这里的master_log_file,master_log_pos的值要和master的值一致。否则会无法同步。

        执行start slave;命令,启动服务。

        注意:在这里可能会无法链接到主数据库,需要看主数据库中my.ini中bind 127.0.0.1是否没有被注释,如果没有,那么只能在本机登录,而不能使用远程登录方式。

       ⑥验证是否同步:

    show slave statusG;

       得到如下结果则说明同步成功。

           

    Slave_IO_Running :从主服务器成功的bin-log日志同步并拿到数据

    Slave_SQL_Running: 从服务器成功地执行SQL语句

    上面两项均为yes,说明配置成功。

    从服务器相关命令

    start slave; //启动从服务器
    stop slave; // 停止从服务器
    show slave status; // 查看从服务器状态
    show master logs; // 查看主服务器 bin-log 日志
    change master to ……  // 动态改变到主服务配置
    show processlist;  // 查看从服务器运行进程

    主从数据不一致

    第一种方法

    stop slave;
    set  global sql_slave_skip_counter=1; //跳过一步错误
    start slave;

    第二种方法:

    stop slave;
    show master status;// 查看主服务器bin-log日志
    change master to…… // 手动同步 ,指定日志文件和文件位置 master-log-file="mysql-bin.00001"  master-log-pos=20

    重启从服务器,查看 show slave statusG,Slave_IO_Running、Slave_SQL_Running 都为 YES,同步成功。

    注意:第一次同步时需要主从库数据一样

  • 相关阅读:
    进程的挂起及恢复
    移植 iconv
    产生不重复随机数
    Javascript数据验证类
    简单设置让EasyUI显示中文,日期选择框格式为yyyyMMdd格式
    NPOI开源组件(操作Execl)创建Workbook和Sheet,创建单元格,设置行列样式等
    PL/SQL中流程控制语句 和Oracle临时表
    c#字符串中包含的运算符按正常计算 例如按四则运算等,类似公式计算,很好很强大
    判断一个数组中的值是否包含在另一个数组中
    利用NPOI开源的读写Excel、WORD等微软OLE2组件读写execl,控制样式或单元格
  • 原文地址:https://www.cnblogs.com/nayilvyangguang/p/13158409.html
Copyright © 2020-2023  润新知