Olay Zamanlayıcısı tarafından kullanılan sistem tabloları sunucu başlangıcında bozuk olduğu için devam edemiyor


18

MySQL için Navicat kullanarak farklı bir sunucuda bir MySQL veritabanından başka bir veri kopyalamaya çalışıyorum. Ancak, aktarımı yapmaya çalıştığımda bu hatayı almaya devam ediyorum. Ben koşuyoruz mysql_upgradezaten ve onu tamamlayan, ama yine de bu hatayı alıyorum. Eski sunucu Apache, MySQL ve PHP için WampServer kullanıyordu.

Bu nasıl veri transferi yapabilirim böylece düzeltebilirim?

Boşver EDIM ... Ben bir aptalım; sadece MySQL'i yeniden başlatmak zorunda kaldım (otomatik olarak gerçekleşeceğini düşünürdünüz!)

Yanıtlar:


37

Aşağıdaki komutları çalıştırmayı deneyin ve daha sonra mysql hizmetinizi yeniden başlatın.

mysqlcheck -u [username] -p --all-databases --check-upgrade --auto-repair
mysql_upgrade -u [username] -p

Hala olay tablosunu bırakın ve tekrar oluşturun, sonra yeniden başlatın.

DROP TABLE event;

Mysql_system_tables.sql dosyasından olay tablosu tanımını bulun. Benim için şu konumda: /usr/local/share/mysql/mysql_system_tables.sql

Mysql 5.1 olay tablosu tanımı:

DROP TABLE IF EXISTS `event`;
CREATE TABLE `event` (
  `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `name` char(64) NOT NULL DEFAULT '',
  `body` longblob NOT NULL,
  `definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `execute_at` datetime DEFAULT NULL,
  `interval_value` int(11) DEFAULT NULL,
  `interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `last_executed` datetime DEFAULT NULL,
  `starts` datetime DEFAULT NULL,
  `ends` datetime DEFAULT NULL,
  `status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
  `on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
  `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
  `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `originator` int(10) unsigned NOT NULL,
  `time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
  `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `body_utf8` longblob,
  PRIMARY KEY (`db`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events';

mysql sürümü 5.6'dan büyükse "SET SQL_MODE = 'ALLOW_INVALID_DATES';" drop komutundan önce. modifiedzaman damgası BOŞ DEĞİL VARSAYILAN '0000-00-00 00:00:00', varsayılan sıfır doldurma süresine izin verilmediğinden sütun hatası tetikleyecektir.
Sinan Eldem
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.