美文网首页
MySQL主从复制

MySQL主从复制

作者: wolloo | 来源:发表于2019-01-10 20:53 被阅读0次

    1.配置主服务器

    登录主服务器3306

    mysql -S /data/mysql/mysql_3306/mysqld.sock -P 3306 -u root -p

    创建主从复制账户rep1

    mysql> create user rep1;

    账户赋权

    mysql> GRANT REPLICATION SLAVE ON *.* to 'rep1'@'127.0.0.1' identified by 'password';

    因为我是在一台机器上安装了两个mysql实例,配的地址是本机地址127.0.0.1,多台机器情况下配的是从服务器地址。

    复制账号需要REPLICATION SLAVE权限才能正常使用,复制用户可以通过

    SHOW MASTER STATUS;

    SHOW SLAVE STATUS;

    命令来查看复制状态

    增加主服务器配置,开启二进制日志log-bin

    server-id=1   //数据服务标识,从服务器配置的时候要区别于主服务器

    log-bin=master-bin 

    log-bin-index=master-bin.index

    登录主服务器查看状态

    2.配置从服务器

    修改从服务器配置文件server-id = 3,区别于主服务器id。

    重启从服务器后登录

    连接master:

    mysql> change master to master_host=’127.0.0.1’,master_user=’rep1’,master_password=’password’,master_log_file=’mysql-bin.000002’,master_log_pos=0;

    执行后启动Slave

    mysql> start slave;

    查询同步状态:

    mysql> show slave status\G

    出错了

    原因关联master时master_log_pos属性没配

    重新关联master

    mysql> change master to master_host=’127.0.0.1’,master_user=’rep1’,master_password=’password’,master_log_file=’mysql-bin.000002’,master_log_pos=1309;

    报错:ERROR 3021 (HY000): This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.

    需要先关闭当前的slave;

    mysql> stop slave;

    完成后重新关联,查看slave状态:

    slave_sql_running和Slave_IO_Running,分别负责slave mysql进程和与主机的io通信,必须全部是yes才表示成功。

    成功了

    验证:在主服务器中执行建库、建表、数据增删改都会同步到从服务器中,看来是成功了。

    附上项目源码:https://github.com/wollowow/mysql-proxy-demo.git

    参考:

    https://www.cnblogs.com/luckcs/articles/2543607.html

    https://www.cnblogs.com/alvin_xp/p/4162249.html

    相关文章

      网友评论

          本文标题:MySQL主从复制

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