mysql主从复制配置

   早就想写一篇关于数据库主从复制的文章,今天利用一些琐碎的时间操作了一遍并记录下来:

首先,我们必须思考,主从复制的大概步骤是什么,即使你不懂数据库这块,我想这个步骤好好想下还是知道的,我们知道数据库是跟用户关联的,那么首先必须建立一个用户,然后授权,这个用户在哪里建立呢?数据来源是主库,当然是在主库里面建立用户了,是的,然后需要利用数据库提供的命令在从库里面对在主库建立的用户一个授权操作,然后就OK了,大概步骤如下:

  对于主库

  • 编辑/etc/my.cnf,添加以下内容

    vi /etc/my.cnf

  1. log-bin=mysql-bin

  2. server-id=1

  3. innodb_flush_log_at_trx_commit=1

  4. sync_binlog=1

  5. binlog-do-db=mysql_hadoop

    binlog_ignore_db=mysql

    server-id=1中的1可以任定义,只要是唯一的就行。
    binlog-do-db=mysql_hadoop是表示只备份mysql_hadoop。
    binlog_ignore_db=mysql表示忽略备份mysql。

  • 重启数据库 service mysqld restart

  • 登陆数据库 mysql -uroot -p123456

  • 新建用户并授权 CREATE USER ‘mysql‘@‘192.168.32.129‘ IDENTIFIED BY ‘mysql‘;
    GRANT REPLICATION SLAVE ON *.* TO ‘mysql‘@‘192.168.32.129‘ IDENTIFIED BY ‘mysql‘;

  • 锁定数据 FLUSH TABLES WITH READ LOCK;

  • 导出数据库 mysqldump -u root -p123456 --all-databases  --lock-tables=false  -- > /root/all.sql

  • 解锁数据表 UNLOCK TABLES;

  对于从库

  •  导入主库的数据库 mysql -u root -p123456 < /root/all.sql

  •  编辑 /etc/my.cnf

    vi /etc/my.cnf

    增加 server-id=2

  • 重启从数据库

    service mysqld restart

  • 授权于主库连接命令

    CHANGE MASTER TO
    MASTER_HOST=‘192.168.32.128‘,
    MASTER_USER=‘mysql‘,
    MASTER_PASSWORD=‘mysql‘,
    MASTER_PORT=3306,
    MASTER_LOG_FILE=‘mysql-bin.000001‘,
    MASTER_LOG_POS=98,
    MASTER_CONNECT_RETRY=10;

    PS:MASTER_HOST:主服务器的IP。
        MASTER_USER:配置主服务器时建立的用户名
        MASTER_PASSWORD:用户密码
        MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。

  • 启动slave  START SLAVE;

 




本文出自 “陈砚羲” 博客,请务必保留此出处http://chenyanxi.blog.51cto.com/4599355/1558155

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。