zoukankan      html  css  js  c++  java
  • MySQL的主从复制

    折腾了花一天才搞完,但是这个真的好简单。步骤完全正确的情况下配置MySQL的主从复制不到几分钟就搞定了,不自黑了,赶紧记下笔记先;

    1.首先 确保两台服务器的MySQL版本必须一致,不然有的操作5.7支持,5.3不支持这种就尴尬了,同步肯定会出错的

    2.在主服务器(Master)添加一个账号供从服务器(Slave)使用

    create user  username@'ip段' identified by 'password' ;    eg:ip段表示指定访问Master的Slave主机ip  设为'%'表示任何一台服务器都可以连接

    对账号进行授权

    grant replication slave on *.* to 'username'@'IP段';

    3.对Master和Slave进行配置  

    主服务器:

    vi /etc/my.cnf      //MySQL路径自己找

    在[mysqld] 下面添加

    log-bin = mysql-bin

    server-id = 1     //server-id一定是唯一的,

    #bind-address=127.0.0.1     //这个选项表示只允许本地访问,屏蔽掉

    从服务器:

    log-bin = mysql-bin

    server-id = 2

    read_only         = 1     //设为只读的  可以不加

    4.数据同步,先确保两个服务器的数据库一样

    在Master命令行

    mysqldump -uroot -p --single-transaction --master-data --triggers --routines --all-databases > /backup/all.sql         //导出所有的数据,-single-transaction保证事务一致性

    在Slave命令行

    scp uname@server:/backup/all.sql  /var/dumpsql/            //scp把远程服务器上的文件复制到当前服务器上面

    然后存放导入Slave里面

    mysql -u root -p < /var/dumpsql/all.sql              //输入密码 搞定,手动同步了

    5.

    Master 查看状态

    mysql> show master status;

    最好reset一下master 让mysql-bin回到出事状态000001;

    mysql>reset master;

    Slave 配置复制链路

    mysql>change master to master_host='Masterip',master_user='username',master_password='password',master_log_file='mysql-bin.000007',master_log_pos=3026;

    mysql>start slave;      //启动从服务器

    mysql>show slave statusG;         //查看slave服务器状态

    如果显示no的话

    mysql>stop slave;

    mysql>set global sql_slave_skip_counter=1;

    mysql>start slave;

    mysql>show slave statusG;    //再试试就可以了 

    关键点:

    1.添加slave账号

    2.设置两台服务器的server-id

    3.mysqldump同步数据

    4.配置复制链路,启动slave

    可能遇到的错误

    ① 添加slave账号时报:ERROR 1396 (HY000): Operation CREATE USER failed for ‘test’@’%’ 

    解决:表示已有这个账号存在,使用

    mysql>select user from mysql.user where host='%';

    mysql>delete from user where user='username';//删掉对应的账号

    mysql>drop user username@'IP段';

    mysql>flush privileges;//刷新,重新创建 搞定ok

  • 相关阅读:
    Exception while invoking TaskListener: Exception while invoking TaskListener: null
    oracle mysql gbk varchar varchar2
    WIN10 Samba(SMB) v1 trouble shooting
    信号之信号集
    信号之不可靠的信号及中断的系统调用
    信号之alarm和pause函数
    信号之kill和raise函数
    信号之可靠信号术语和语义
    信号之可重入函数
    信号之signal函数
  • 原文地址:https://www.cnblogs.com/cyq632694540/p/6910246.html
Copyright © 2011-2022 走看看