| Bug #20702 | Replication stops because of "unknown database" | ||
|---|---|---|---|
| Submitted: | 26 Jun 2006 18:45 | Modified: | 27 Jun 2006 16:47 | 
| Reporter: | Brad Culberson | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: Replication | Severity: | S1 (Critical) | 
| Version: | 5.0.19 | OS: | Linux (Linux) | 
| Assigned to: | CPU Architecture: | Any | |
   [26 Jun 2006 18:51]
   Brad Culberson        
  here it is again:
|                | content2.garmin.com | repl        |        3306 |            60 | mysql-bin.001691 |            25730855 | content-relay-bin.000413 |      58720023 | mysql-bin.001673      | No               | No                |                 |                     |                    | mb.activity_full_text_index,mb.activity_full_test_index_temp,jboss.JMS_MESSAGES,jbossditto.JMS_MESSAGES,jboss.JMS_TRANSACTIONS,jbossditto.JMS_TRANSACTIONS,mb.activity_full_text_index,mb.activity_full_test_index_temp,jboss.JMS_MESSAGES,jbossditto.JMS_MESSAGES,jboss.JMS_TRANSACTIONS,jbossditto.JMS_TRANSACTIONS |                         |                             |       1049 | Error 'Unknown database '`]''' on query. Default database: 'mbgeo'. Query: 'INSERT into mb.activity_full_text_index_temp
    SELECT mb.episode.name as episode_name, mb.episode.description as episode_description, t.geo_feature_name_full_name as geo_feature_name_full_name_nd, mb.user_profile.username as user_profile_username, mb.user_profile.email_address as user_profile_email_address, mb.user_profile.first_name as user_profile_first_name, mb.user_profile.last_name as user_profile_last_name, mb.activity.activity_pk as activity_activity_pk, TRIM(REPLACE(CONCAT_WS(' ',mb.activity_type.db_description,parent_activity_type.db_description),'MotionBased','')) as activity_type_db_description, mb.event_type.db_description as event_type_db_description
    FROM mb.mb_activity
    INNER JOIN mb.activity ON mb.activity.activity_pk = mb.mb_activity.activity_pk
    INNER JOIN mb.episode ON mb.episode.episode_pk = mb.activity.episode_pk
    INNER JOIN mb.gps_track ON mb.gps_track.gps_track_pk = mb.mb_activity.gps_track_ |            0 |            58719886 |      1902913466 | None            |                |             0 | No                 |                    |                    |                 |                   |                |                       |
i will try to get you a dump of the data around that position and attach it.
 
   [26 Jun 2006 18:56]
   Brad Culberson        
  here is the data from the part of the log that crashed it the last time.
./mysqlbinlog --start-position=58720023 --stop-position=58720025 content-relay-bin.000413
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
# at 58720023
#060626  3:00:02 server id 2  end_log_pos 58721689    Query     thread_id=9266  exec_time=61  error_code=0
use mb;
SET TIMESTAMP=1151308802;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
SET @@session.sql_mode=0;
/*!\C latin1 */;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=33;
SET @@session.time_zone='SYSTEM';
INSERT into mb.activity_full_text_index_temp
    SELECT mb.episode.name as episode_name, mb.episode.description as episode_description, t.geo_feature_name_full_name as geo_feature_name_full_name_nd, mb.user_profile.username as user_profile_username, mb.user_profile.email_address as user_profile_email_address, mb.user_profile.first_name as user_profile_first_name, mb.user_profile.last_name as user_profile_last_name, mb.activity.activity_pk as activity_activity_pk, TRIM(REPLACE(CONCAT_WS(' ',mb.activity_type.db_description,parent_activity_type.db_description),'MotionBased','')) as activity_type_db_description, mb.event_type.db_description as event_type_db_description
    FROM mb.mb_activity
    INNER JOIN mb.activity ON mb.activity.activity_pk = mb.mb_activity.activity_pk
    INNER JOIN mb.episode ON mb.episode.episode_pk = mb.activity.episode_pk
    INNER JOIN mb.gps_track ON mb.gps_track.gps_track_pk = mb.mb_activity.gps_track_pk
    INNER JOIN mb.user_profile ON mb.user_profile.user_profile_pk = mb.gps_track.owner_pk
    INNER JOIN mb.activity_type ON mb.activity_type.activity_type_pk = mb.episode.activity_type_pk
    INNER JOIN mb.event_type on mb.event_type.event_type_pk = mb.episode.event_type_pk
    INNER JOIN mb.activity_type_has_subtype on mb.activity_type_has_subtype.activity_subtype_pk = mb.activity_type.activity_type_pk
    INNER JOIN mb.activity_type parent_activity_type on parent_activity_type.activity_type_pk = mb.activity_type_has_subtype.activity_type_pk
    INNER JOIN (Select st.location_pk, mbgeo.fn_GeoFeatureExtendedName(st.location_pk,' ') as geo_feature_name_full_name From (Select distinct location_pk from mb.gps_track) as st) as t on t.location_pk = mb.gps_track.location_pk;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
 
   [26 Jun 2006 19:03]
   Brad Culberson        
  These seem to be similar/identical problems: http://bugs.mysql.com/bug.php?id=19344 http://bugs.mysql.com/bug.php?id=11008
   [27 Jun 2006 16:47]
   Valeriy Kravchuk        
  Thank you for a problem report. This looks like a perfect duplicate of bug #19344. Please, add your comment to that report. Bug #11008 is different, it seems.

Description: Slaves stop with error when a stored procedure is ran on the live system (daily). We have to set global skip and start it back up every day... The goal of this proc is to create a full text index for our data that is stored in INNODB. The error is: [ERROR] Slave: Error 'Unknown database '~PÏ$^X'' on query. Default database: 'mbgeo'. Query: 'INSERT into mb.activity_full_text_index_temp^M SELECT mb.episode.name as episode_name, mb.episode.description as episode_description, t.geo_feature_name_full_name as geo_feature_name_full_name_nd, mb.user_profile.username as user_profile_username, mb.user_profile.email_address as user_profile_email_address, mb.user_profile.first_name as user_profile_first_name, mb.user_profile.last_name as user_profile_last_name, mb.activity.activity_pk as activity_activity_pk, TRIM(REPLACE(CONCAT_WS(' ',mb.activity_type.db_description,parent_activity_type.db_description),'MotionBased','')) as activity_type_db_description, mb.event_type.db_description as event_type_db_description^M FROM mb.mb_activity^M INNER JOIN mb.activity ON mb.activity.activity_pk = mb.mb_activity.activity_pk^M INNER JOIN mb.episode ON mb.episode.episode_pk = mb.activity.episode_pk^M INNER JOIN mb.gps_track ON mb.gps_track.gps_track_pk = mb.mb_activit The database '~PÏ$^X'' does not exist? | sp_ActivityFullTextIndexReset | | CREATE DEFINER=`root`@`192.168.10.20` PROCEDURE `sp_ActivityFullTextIndexReset`() BEGIN TRUNCATE TABLE mb.activity_full_text_index_temp; INSERT into mb.activity_full_text_index_temp SELECT mb.episode.name as episode_name, mb.episode.description as episode_description, t.geo_feature_name_full_name as geo_feature_name_full_name_nd, mb.user_profile.username as user_profile_username, mb.user_profile.email_address as user_profile_email_address, mb.user_profile.first_name as user_profile_first_name, mb.user_profile.last_name as user_profile_last_name, mb.activity.activity_pk as activity_activity_pk, TRIM(REPLACE(CONCAT_WS(' ',mb.activity_type.db_description,parent_activity_type.db_description),'MotionBased','')) as activity_type_db_description, mb.event_type.db_description as event_type_db_description FROM mb.mb_activity INNER JOIN mb.activity ON mb.activity.activity_pk = mb.mb_activity.activity_pk INNER JOIN mb.episode ON mb.episode.episode_pk = mb.activity.episode_pk INNER JOIN mb.gps_track ON mb.gps_track.gps_track_pk = mb.mb_activity.gps_track_pk INNER JOIN mb.user_profile ON mb.user_profile.user_profile_pk = mb.gps_track.owner_pk INNER JOIN mb.activity_type ON mb.activity_type.activity_type_pk = mb.episode.activity_type_pk INNER JOIN mb.event_type on mb.event_type.event_type_pk = mb.episode.event_type_pk INNER JOIN mb.activity_type_has_subtype on mb.activity_type_has_subtype.activity_subtype_pk = mb.activity_type.activity_type_pk INNER JOIN mb.activity_type parent_activity_type on parent_activity_type.activity_type_pk = mb.activity_type_has_subtype.activity_type_pk INNER JOIN (Select st.location_pk, mbgeo.fn_GeoFeatureExtendedName(st.location_pk,' ') as geo_feature_name_full_name From (Select distinct location_pk from mb.gps_track) as st) as t on t.location_pk = mb.gps_track.location_pk; TRUNCATE TABLE mb.activity_full_text_index; INSERT into mb.activity_full_text_index SELECT * From mb.activity_full_text_index_temp; END | | activity_full_text_index_temp | CREATE TABLE `activity_full_text_index_temp` ( `episode_name` varchar(255) NOT NULL default '', `episode_description` varchar(255) default '', `geo_feature_name_full_name_nd` text NOT NULL, `user_profile_username` varchar(255) NOT NULL default '', `user_profile_email_address` varchar(255) NOT NULL default '', `user_profile_first_name` varchar(255) NOT NULL default '', `user_profile_last_name` varchar(255) NOT NULL default '', `activity_activity_pk` int(11) NOT NULL default '0', `activity_type_db_description` varchar(255) NOT NULL default '', `event_type_db_description` varchar(255) NOT NULL default '' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 character sets match on master and slave How to repeat: run the stored procedure on the master. when it gets to the slave, the slave will die.