Der folgende Editor bringt Ihnen einen Artikel darüber, wie Sie das Problem des Tabellen-Primärschlüsselkonflikts lösen können, wenn innodb_index_stats Sicherungsdaten importiert. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.
Fehlerbeschreibung
Percona5.6, MySQL-Dump-Vollsicherung, beim Importieren von Sicherungsdaten ein Fehler Tritt auf Doppelter Eintrag ' hoc_log99-item_log_27-PRIMARY-n_diff_pfx01' für Schlüssel 'PRIMARY'
Fehlerursache
Nach der Überprüfung dieser Primärschlüssel sollte sich unter der MySQL-Systembibliothek befinden Die Systemtabelle innodb_index_stats
mysql> show create table innodb_index_stats\G *************************** 1. row *************************** Table: innodb_index_stats Create Table: CREATE TABLE `innodb_index_stats` ( `database_name` varchar(64) COLLATE utf8_bin NOT NULL, `table_name` varchar(64) COLLATE utf8_bin NOT NULL, `index_name` varchar(64) COLLATE utf8_bin NOT NULL, `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `stat_name` varchar(64) COLLATE utf8_bin NOT NULL, `stat_value` bigint(20) unsigned NOT NULL, `sample_size` bigint(20) unsigned DEFAULT NULL, `stat_description` varchar(1024) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0 1 row in set (0.00 sec) mysql> select * from innodb_index_stats where database_name='hoc_log99' and table_name='item_log_27' and stat_name='n_diff_pfx01' and index_name='PRIMARY'; +---------------+-------------+------------+---------------------+--------------+------------+-------------+------------------+ | database_name | table_name | index_name | last_update | stat_name | stat_value | sample_size | stat_description | +---------------+-------------+------------+---------------------+--------------+------------+-------------+------------------+ | hoc_log99 | item_log_27 | PRIMARY | 2016-10-07 18:44:06 | n_diff_pfx01 | 823672 | 20 | redid | +---------------+-------------+------------+---------------------+--------------+------------+-------------+------------------+ 1 row in set (0.00 sec)
überprüfte dann die Datensätze meiner Sicherungsdatei SQL zu diesem Zeitpunkt und stellte fest, dass die Tabelle vor dem erneuten Importieren dieser Tabelle neu erstellt wird, was das ausschließt Betrieb der Tabelle item_log_27 vor dem Importieren dieser Tabelle. Möglichkeit der Anmeldung in innodb_index_stats.
-- Table structure for table `innodb_index_stats` DROP TABLE IF EXISTS `innodb_index_stats`; CREATE TABLE `innodb_index_stats` ( -- Dumping data for table `innodb_index_stats` LOCK TABLES `innodb_index_stats` WRITE; /*!40000 ALTER TABLE `innodb_index_stats` DISABLE KEYS */;
Also habe ich die letzten Binlog-Datensätze noch einmal überprüft und festgestellt, dass es tatsächlich einen Vorgang gab, um diese Tabelle neu zu erstellen
DROP TABLE IF EXISTS `innodb_index_stats` /* generated by server */ CREATE TABLE `innodb_index_stats` ( /*!40000 ALTER TABLE `innodb_index_stats` DISABLE KEYS */
Fazit
MySQL 5.6-Fehler, andere Kollegen haben den gleichen Fehler festgestellt
www.percona.com/forums/questions-discussions/mysql-and-percona-server/31971-mysql-innodb_index_stats-duplication-entry-error-on-restore
Fehler. mysql.com/bug.PHP?id=71814
Lösung
1 Mysqldump fügt Parameter hinzu, um die Sicherung dieser Tabelle zu ignorieren
2 Ändern Sie die Einfügung dieser Tabelle in die Sicherungsdatei, um sie zu ersetzen
3 MySQL -f Force Import
[Verwandte Empfehlungen]
2.Detaillierte Beispiele für das Hinzufügen neuer Benutzerberechtigungen in MySQL
3.Detaillierte Beispiele für das Ändern von Passwörtern und Zugriffsbeschränkungen in MySQL
4. Detaillierte Beispiele für die Verwendung regulärer Ausdrücke zum Ersetzen von Inhalten in der Datenbank LösungDetaillierte Erläuterung von Beispielen für die PHP-Speicherung von Bildern in MySQLDas obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Fehlers des Tabellenprimärschlüsselkonflikts, wenn innodb_index_stats Daten importiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!