美文网首页
Mysql主从配置(两台机器)

Mysql主从配置(两台机器)

作者: 石乐志的LK | 来源:发表于2017-09-30 08:52 被阅读0次

    (1)主,从换163源

    cd /etc/yum.repos.d/
    mv CentOS-Base.repo CentOS-Base.repo.bak
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
    yum clean all
    yum makecache
    
    

    (2)主从下载安装mysql
    yum install -y mysql mysql-server

    (3)主上操作

        vim /etc/my.cnf
            server-id=1
            log-bin= mysql-binlog
        service mysqld restart
        show master status  #记住mysql-bin和position
        mysql -uroot
        grant replication slave on *.* to 'repl'@'10.2.3.56' identified by '123456';#创建一个用户给从用来登录主,以便于复制操作
    

    (4)从上操作

        vim /etc/my.cnf
            server-id=2
            relay-log= mysql -relay-bin
        service mysqld restart
        mysql -uroot
            slave stop;
            change master to master_host='10.2.3.57',master_port=3306,master_user='repl',master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=106;
            slave start
        show slave status\G;
                     Slave_IO_Running: Yes
                     Slave_SQL_Running: Yes
    
    

    (5)测试
    在主上创建一个数据库
    create database lk
    在从上查看
    show databases;
    同步!

    (6)附加
    我做次试验的前提是两个mysql数据库都是刚安装的,里面的内容完全相同
    我们一定要保证在配置主从的时候两个数据库是完全一样的

    1.指定要同步的数据库,修改主配置文件

    vim /etc/my.conf
        binlog-do-db=db1,db2         #用来指定需要同步的库
        binlog-ignore-db=db1,db2   #指定忽略不同步的库
    

    或者在从上修改配置文件

    vim /etc/my.conf
         replicate-do-db=db1,db2         #用来指定需要同步的库
         replicate-ignore-db=db1,db2   #指定忽略不同步的库
    
    1. 保证主从要同步的数据库文件完全一样
      在主上下载db1的数据库文件
    flush tables with read lock;#这个好像为了保持数据同步,关闭所有打开的表,并给所有的表都家加上一个只读锁,直到主执行unlock tables
    mysqldump -uroot  -p123456 db1 > db1.sql
    

    远程拷贝给从,然后在从上导入给自己的数据库(保证有数据库db1)

    mysql -uroot  db1 < db1.sql
    

    然后打开主的read lock

    mysql -uroot -p123456 -e "unlock tables"
    

    遇到的问题:

    Slave_IO_Running: No
    Slave_SQL_Running: Yes
    
    error connecting to master 'repl@10.2.3.57:3306' - retry-time: 60  retries: 86400
    

    解决:关闭服务器的防火墙和selinux

    service iptables stop
    chkconfig iptables off
    setenforce 0
    getenforce
    vim /etc/selinux/config
      SELINUX=disabled
    

    相关文章

      网友评论

          本文标题:Mysql主从配置(两台机器)

          本文链接:https://www.haomeiwen.com/subject/hchgextx.html