In den folgenden Anweisungen müssen Sie alles, was in [Klammern] steht, durch Ihren korrekten Wert ersetzen. BACKUP VOR DEM VERSUCHEN.
Wenn Sie sich einloggen können als root über die Befehlszeile mysql, dann könnten Sie das tun, nach dem auto_increment auf alle Tabellen zurückgesetzt werden, zuerst werden wir unsere Anfragen konstruieren, die wir ausführen möchten:
eine Datenbanksicherung Stellen :
mysqldump -u [uname] -p [dbname] | gzip -9 > [backupfile.sql.gz]
Anmeldung:
mysql -u root -p
die group_concat_max_length auf einen höheren Wert, so dass unsere Liste der Abfragen nicht verkürztes Set erhalten:
SET group_concat_max_len=100000;
unsere Liste der Abfragen erstellen, indem Sie die folgenden ein:
SELECT GROUP_CONCAT(CONCAT("ALTER TABLE ", table_name, " AUTO_INCREMENT = 0") SEPARATOR ";") FROM information_schema.tables WHERE table_schema = "[DATABASENAME]";
Dann werden Sie eine lange Reihe von MySQL-Abfragen durch ein Bündel von Bindestrichen gefolgt erhalten. Kopieren Sie die Zeichenfolge von Abfragen in die Zwischenablage, wird es so ähnlich aussehen:
ALTER table1 AUTO_INCREMENT = 0;ALTER table2 AUTO_INCREMENT = 0;...continued...
Wechseln Sie auf die Datenbank, die Sie möchten, den Befehl auszuführen auf:
USE [DATABASENAME];
dann die Zeichenfolge einfügen, die auf ist Ihre Zwischenablage und drücken Sie die Eingabetaste, um sie auszuführen. Dies sollte die Änderung an jeder Tabelle in Ihrer Datenbank ausführen.
Vermisst? Wiederherstellung von der Sicherung, müssen Sie von mysql abzumelden, bevor die folgenden läuft (nur exit;
geben, dies zu tun)
gzip -d < [backupfile.sql.gz] | mysql -u [uname] -p [dbname]
Ich werde nicht die Verantwortung für eventuelle Schäden verursachen nehme durch die Nutzung irgendeiner diese Befehle verwenden zu Ihr eigenes Risiko.
Dies ist nicht so gut funktioniert: 'TABLE my_db.customer auto_increment ALTE = (auto_increment FROM information_schema SELECT.Tabellen WHERE table_name = 'customer') ' – pars
Da Sie die M-M-Replikation erwähnt haben: Müssen Sie AUTO_INCREMENT wirklich berühren, damit die Replikation funktioniert? Normalerweise setze ich die Werte für Auto-Inkrement-Inkrement und Auto-Inkrement-Offset in my.cnf. – faxi05
@ faxi05 ja du hast recht. Ich habe auch die gleiche Konfiguration, die in Ordnung war. Um jedoch nach einem Hardwarefehler zwei Datenbanken neu zu synchronisieren, musste ich alles aus einer DB auslagern und in eine andere importieren. Während des Prozesses gab es einige Fehler. Überraschenderweise sind sie weg, ohne dass ich etwas getan habe. – pars