error信息:
110927 19:23:05 [ERROR] Slave SQL: Error 'Unknown database 'gr5on_pc_beta_c'' on query. Default database: 'gr5on_pc_beta_c'. Query: 'CREATE DEFINER=`gr5onpcbetac`@`%` EVENT IF NOT EXISTS `connectionstats_cleanup` ON SCHEDULE EVERY 1 HOUR STARTS NOW() ON COMPLETION NOT PRESERVE ENABLE DO BEGIN 
        DELETE FROM `connectionstats` WHERE logoutdate < DATE_SUB(NOW(), INTERVAL 1 DAY); 
    END', Error_code: 1049
110927 19:23:05 [Warning] Slave: The user specified as a definer ('gr5onpcbetac'@'%') does not exist Error_code: 1449
110927 19:23:05 [Warning] Slave: Unknown database 'gr5on_pc_beta_c' Error_code: 1049
110927 19:23:05 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.002736' position 196055028根据信息是说没有找到数据库。
但是我并不需要复制这个数据库,当然就没有咯。下面是我的配置:
replicate-wild-do-table=GR5ON_PC_BETA_E.%
replicate-wild-do-table=GR5ON_PC_BETA_E_STATS.%
replicate-wild-do-table=GR5ON_PC_BETA_E_LOGS.%我只需要GR5ON_PC_BETA_E数据库,不需要gr5on_pc_beta_c,为什么会跳出这样的错误报告。请高手达人指教。跪谢。

解决方案 »

  1.   

    error信息:
    110927 19:23:05 [ERROR] Slave SQL: Error 'Unknown database 'gr5on_pc_beta_c'' on query. Default database: 'gr5on_pc_beta_c'. Query: 'CREATE DEFINER=`gr5onpcbetac`@`%` EVENT IF NOT EXISTS `connectionstats_cleanup` ON SCHEDULE EVERY 1 HOUR STARTS NOW() ON COMPLETION NOT PRESERVE ENABLE DO BEGIN 
      DELETE FROM `connectionstats` WHERE logoutdate < DATE_SUB(NOW(), INTERVAL 1 DAY); 
      END', Error_code: 1049
    110927 19:23:05 [Warning] Slave: The user specified as a definer ('gr5onpcbetac'@'%') does not exist Error_code: 1449
    110927 19:23:05 [Warning] Slave: Unknown database 'gr5on_pc_beta_c' Error_code: 1049
    110927 19:23:05 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.002736' position 196055028
    -- 注意:数据库名的大小写!
      

  2.   

    现在不是大小写的问题,现在的问题是我不需要复制'gr5on_pc_beta_c''数据库,为什么会跳出这样的错误信息呢?
      

  3.   

    -- 是不是你在执行某个命令,或调用 的某个脚本里将 gr5on_pc_beta_e 写成 gr5on_pc_beta_c 了呢?
    -- 问问题的起码方法:将你的执行代码及报错信息都贴出来,有必要时,
    -- 还应该贴上运行环境(例如操作系统、数据库版本号等)!
    -- 你这莫名其妙的问,啥信息也不告诉人家,还指望谁能给你正确答案呢?
      

  4.   

    可能是执行某些操作的时候带上了'gr5on_pc_beta_c''
      

  5.   

    首先感谢各位。我没有执行代码,就是直接做replication,以下是步骤
    1.备份master上的这三个数据库  GR5ON_PC_BETA_E  GR5ON_PC_BETA_E_STATS  GR5ON_PC_BETA_E_LOGS
    2. 恢复备份到slave上
    3. 使用change master命令
    4. start slave  -- 无报错
    5. 过了10几分钟后,出现以上的错误。
    期间我不知道master上做过什么操作,但是我确定我只复制以上三个数据库的数据,这个在我my.cnf里面加入了replicate-wild-do-table=GR5ON_PC_BETA_E.%
    replicate-wild-do-table=GR5ON_PC_BETA_E_STATS.%
    replicate-wild-do-table=GR5ON_PC_BETA_E_LOGS.%
    参数可以说明,我现在的问题就是,为什么我再配置文件里面加入复制的数据库的条件,slave还要去需找'gr5on_pc_beta_c' 数据库呢?这就是我觉得奇怪的地方。
    我按照相同的操作做了另外两组replication,都没有发生这样的情况。PS: master   linux
         slave    windows
    另外两组也是一样的配置。