当前位置:   article > 正文

mysql主从复制(一主一从)搭建(超详细)_一主一从在线

一主一从在线

准备两个虚拟机

 

解决uuid:

 生成的uuid复制到auto.cnf中即可 

  1. 各自安装好mysql, 版本必须一致
  2. 查询mysql的配置  vim /etc/my.cnf                                    避免复制的虚拟机 导致mysql的serverId一致                                                                            例如135为主机   136为从机配置如下
  3. 配置主服务

    1. 编辑 /etc/my.cnf
      1. log-bin=mysql-bin
      2. server-id=1
      3. binlog-do-db=2007javaa
      4. binlog_ignore_db=mysql

      注意要把此项配置放在my.cnf的[mysqld]下面

    2. 重启mysql                                                                                                                    systemctl restart mysql
    3. 创建一个允许从数据库来访问的用户账号(mysql中操作)                                                        #创建账号                                                                                                                         create user 'username'@'从机ip' identified by '123456';                                                   #授权                                                                                                                                 grant all privileges on *.* to 'username'@'从机ip' with grant option;                                 #刷新                                                                                                                              FLUSH PRIVILEGES;                                                              

      1. create user bw@'192.168.58.136' identified by 'root';
      2. grant all privileges on *.* to 'bw'@'192.168.58.136' with grant option;
      3. FLUSH PRIVILEGES;
      4. 注意新创建的用户不可以是root 因为root已经存在

    4.  使用如下命令查看主服务器(mysql中操作)

      show master status\G

      如果是empty 查看log-bin

      show variables like '%log_bin%';                 

    5. 可以看到log_bin是OFF.

      解决方法:

      在mysql 配置文件 /etc/my.cnf中

      [mysqld]下添加:

      log-bin=mysql-bin

      但是我们上面已经配置过这个了,那就是配置的/etc/my.cnf没有生效

      #查看是否有设置使用指定目录的my.cnf文件,如果没有则是加载默认文件/etc/my.cnf

      ps aux|grep mysql|grep 'my.cnf'

      #查看mysql默认使用my.cnf文件目录以及优先级,排在前面的优先级高

      mysql --help|grep 'my.cnf'

      修改的位置不对,由于是测试环境的mysql,所以是直接使用mysqld去启动MySQL服务的,

      而不是使用mysqld_safe脚本去启动的,所以修改参数的时候需要对应好才会生效。

      配置要放在[mysqld]下才会生效                               生效后查看的结果:                                                            记住file  和 position  下一步操作需要此值

        

       从服务器配置和操作

    6. 编辑/etc/my.cnf文件,添加如下内容:                                                                          server-id=2                                                                                                                        注意:不可跟主服务器的一样
    7. 重启从服务器                                                                                                                      service mysqld restart
    8. 如果之前有启动过slave,要先关闭,如果是第一次就忽略。(mysql中操作)                   stop slave;
    9. 执行如下代码(mysql中操作)                                                                                         change master to master_host=‘主服务器ip’,                                                    master_user=‘刚在主服务器创建的用户名’,                                              master_password=‘刚在主服务器创建的用户密码’,                                          master_port=3306,                                                                                        master_log_file=‘刚查看主服务器下的File值’,                                                            master_log_pos=刚查看主服务器下的Position值

      1. change master to master_host='192.168.58.135',
      2. master_user='bw',
      3. master_password='root',
      4. master_port=3306,
      5. master_log_file='mysql-bin.000001',
      6. master_log_pos=120;

    10. 执行如下代码(mysql中操作)                                                                                         show slave status\G  能看到如下结果即可                                 说明成功! 如果有其中一个为NO 都不成功!
    11. 测试

      使用navicat链接主服务器和从服务器

      在主服务器中创建数据库和表 从服务器会自动同步数据

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/829120
推荐阅读
相关标签
  

闽ICP备14008679号