Không thể tiến hành vì các bảng hệ thống được sử dụng bởi Trình lập lịch sự kiện đã bị hỏng khi khởi động máy chủ


18

Tôi đang cố gắng sao chép dữ liệu từ cơ sở dữ liệu MySQL này sang cơ sở dữ liệu khác trên một máy chủ khác bằng Navicat cho MySQL. Tuy nhiên, tôi tiếp tục gặp lỗi này khi tôi cố gắng thực hiện chuyển khoản. Tôi đã chạy mysql_upgradevà nó đã hoàn thành, nhưng tôi vẫn gặp lỗi này. Máy chủ cũ đã sử dụng WampServer cho Apache, MySQL và PHP.

Làm thế nào tôi có thể sửa lỗi này để tôi có thể thực hiện chuyển dữ liệu ??

EDIT Nevermind ... Tôi là một thằng ngốc; chỉ cần khởi động lại MySQL (bạn sẽ nghĩ nó sẽ diễn ra tự động!)

Câu trả lời:


37

Hãy thử chạy các lệnh sau và sau đó khởi động lại dịch vụ mysql của bạn sau đó.

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

Nếu vẫn có vấn đề thả bảng sự kiện và tạo lại, sau đó khởi động lại.

DROP TABLE event;

Tìm định nghĩa bảng sự kiện từ tệp mysql_system_tables.sql. Đối với tôi ở vị trí sau: /usr/local/share/mysql/mysql_system_tables.sql

Định nghĩa bảng sự kiện Mysql 5.1:

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';

nếu phiên bản mysql lớn hơn 5.6, bạn có thể cần thêm "SET SQL_MODE = 'ALLOW_INVALID_DATE';" trước khi thả lệnh. modifieddấu thời gian KHÔNG NULL DEFAULT '0000-00-00 00:00:00', cột sẽ gây ra lỗi, vì thời gian điền đầy mặc định không được phép nữa.
Sinan Eldem
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.