zoukankan      html  css  js  c++  java
  • Mysql5.6主从热备配置

    数据库是应用系统的核心,为了保证数据库的安全采用主从热备是很常见的方法,也就是主数据库DDL、DML都将被同步到从数据库。

    一、      实验环境

    操作系统:windowsserver 2008 R2

    数据库:MySQL-advanced-5.6.21-winx64

    二、 准备工作

    1、        把需要同步的数据库实例从主数据库备份出来,然后手动导入从数据库,以保证数据库同步的时候主从数据库是一致的。

    2、        配置主数据库所在操作系统的防火墙,开放数据库访问端口,默认端口3306。

    三、 修改主数据库master

    C:softmysql-advanced-5.6.21-winx64my.ini

    如果ini文件名是my-default.ini修改为my.ini。

    [plain] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. [mysqld]  
    2. #[必须]服务器唯一ID,默认是1,一般取IP最后一段  
    3. server_id = 41   
    4. #[必须]启用二进制日志  
    5. log_bin=mysql-bin  
    6. #需要备份的数据库名  多个库以逗号分隔  
    7. binlog-do-db =test  
    8. #若涉及及同步函数或者存储过程需要配置,否则主备会产生异常不能同步  
    9. log_bin_trust_function_creators=TRUE  

    四、修改从数据库slave

    C:softmysql-advanced-5.6.21-winx64my.ini

    如果ini文件名是my-default.ini修改为my.ini。

    [plain] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. [mysqld]  
    2. #[必须]服务器唯一ID,默认是1,一般取IP最后一段  
    3. server_id = 44  

    五、   重启数据库

    [plain] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. 停止服务  
    2. net  stop  mysql  
    3. 启动服务  
    4. net  start  mysql  

    六、 在主数据库建立账号并授权slave

    [sql] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. grant replication slave on *.* to 'tantuls'@'%' identified by '123456';  

    一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.1.44,加强安全。

    [sql] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. 检测授权结果  
    2. select * from user where host='%' and user='tantuls'G;  

    如果Repl_slave_priv项为Y,表示授权成功。

    七、登录主数据库查看master状态

    [sql] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. show master status;  


    注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

    八、 配置从数据库slave

    [sql] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. mysql> change master to   
    2. master_host='192.168.1.41',  
    3. master_user='tantuls',  
    4. master_password='123456',  
    5. master_log_file='mysql-bin.000004',  
    6. master_log_pos=326;  


    如果slave处于启动状态,则先执行stopslave命令停止,再执行changemaster to…配置slave,最后执行start slave启动slave。

    九、检测从数据库复制功能状态

    [sql] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. show master status;  

    其中下面两项都必须为yes。

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    十、 验证

    在主数据库test数据库实例中创建一个数据库表tt,在从数据库执行查看对应数据库实例下是否新建了一个名为tt的表。

    主库建表:

    从库检测表是同步过来:

  • 相关阅读:
    Ruby创始人谈Ruby的blocks和closure结构
    C语言字节对齐
    如今的开发者应了解哪些过去闻所未闻的新技能
    mongo下面总是缺少那么几个好用的工具试试这个吧MongoDB管理工具
    我们程序员为什么难晋升
    CMMI vs. Scrum vs. XP
    Rspec在Rails项目中的使用
    什么是Scrum?
    大型软件产品的敏捷案例 分享
    补充“为什么Scrum不行” (转自陈勇)
  • 原文地址:https://www.cnblogs.com/hujihon/p/6249792.html
Copyright © 2011-2022 走看看