Heim  >  Artikel  >  Datenbank  >  Ausführliche Erläuterung von Beispielen für das Abrufen von Benutzerdaten durch MySQL

Ausführliche Erläuterung von Beispielen für das Abrufen von Benutzerdaten durch MySQL

黄舟
黄舟Original
2017-09-21 10:56:271096Durchsuche

Was ist passiert

Eines Tages sagte ein Vertriebs-C aus einem externen Bereich unseres Unternehmens, dass er die Workflow-Datensätze nicht vor dem 3. August finden konnte. Auf die Frage nach dem Grund stellte sich heraus, dass WeChat aktualisiert wurde (der Workflow unseres Unternehmens basiert auf Enterprise WeChat). Nach der Analyse stellten wir fest, dass die WeChat-ID nichts mit Prozessdaten zu tun hat, und kamen daher zu dem vorläufigen Schluss: Ursprünglich mussten wir nur die WeChat-ID aktualisieren, aber als Ergebnis löschte der Prozesssystemadministrator unseres Unternehmens den Benutzer zuerst und erstellte ihn dann ein neuer Benutzer.

Lösungsprozess

1. Das erste, was mir in den Sinn kommt, ist, die ursprüngliche Benutzer-ID direkt aus den geplanten Sicherungsdaten abzurufen Das Workflow-System zeigt, dass Sales C erst nach dem 3. August über Prozessdatensätze verfügt. Seitdem sind mehr als 40 Tage vergangen und sie können nicht aus den automatischen Sicherungsdaten wiederhergestellt werden.

2. Daher kann es nur anhand der Binärdatensätze in der Datenbank analysiert werden. Geben Sie das Verzeichnis ein, in dem MySQL-Daten gespeichert sind:

3. Durch die Analyse der Dateiänderungszeit haben wir erfahren, dass der Löschvorgang im MySQL-Speicher erfolgt. bin.000014 Dateieintrag.

4. Da die Protokolldatei binär ist, wird das Protokoll als SQL-Datei exportiert:

mysqlbinlog --no-defaults mysql-bin.000014 > workflow_operator.sql

5. Der Protokolldatensatz ist nach dem Exportieren relativ groß Datei und laden Sie sie lokal herunter. , nur 15,2 Mio.

tar -czvf workflow_operator.tar.gz workflow_operator.sql

6. Verwenden Sie das Texttool lokal, um alle Vorgänge zum Löschen von Benutzern zu finden:

Die letzte Aktion zum Löschen von Sales C befindet sich unter Zeile 127766 (obwohl die Protokolldatensatzzeile relativ groß ist, sind die Aktionen zum Löschen von Benutzern relativ gering, sodass die Fehlerbehebung einfach ist)

 

7 Glücklicherweise wurde nur der Benutzer gelöscht, nicht die Prozessdaten (da Prozessdaten archiviert werden müssen), also ersetzen Sie einfach die alte Prozessdaten-Benutzer-ID von sales C. Es gibt viele Tabellen verarbeiten. Suchen Sie durch manuelle Arbeit die Tabelle mit der alten ID und verwenden Sie dann die Aktualisierungsanweisung, um sie gemeinsam zu aktualisieren und schließlich alle Daten abzurufen:

(Aus Datenschutzgründen werden die letzten vier Ziffern durch XXX ersetzt Bedenken)

update flow_fr_borrow set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_fr_cost set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_fr_fixedasset set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_fr_house_lease set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_fr_purchase set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_fr_travel set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_hr_positive set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_pr_equip_borrow_sale set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_pr_equip_return set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_sa_tepe set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_sa_safore set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_sa_authorize set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_sa_business set user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where user_id = '66adfd032ccf428d9e20e864f729xxxx';
update flow_hr_trial set sel_user_id = 'e76cb8bccaf74f32b94d17f74437xxxx' where sel_user_id = '66adfd032ccf428d9e20e864f729xxxx' ;
update wf_hist_order set creator = 'e76cb8bccaf74f32b94d17f74437xxxx' where creator = '66adfd032ccf428d9e20e864f729xxxx';
update wf_hist_task set operator = 'e76cb8bccaf74f32b94d17f74437xxxx' where operator = '66adfd032ccf428d9e20e864f729xxxx';
update wf_order set creator = 'e76cb8bccaf74f32b94d17f74437xxxx' where creator = '66adfd032ccf428d9e20e864f729xxxx';
update wf_hist_task_actor set actor_Id = 'e76cb8bccaf74f32b94d17f74437xxxx' where actor_Id = '66adfd032ccf428d9e20e864f729xxxx';

Sales C hat sehr viel gesagt. Wenn er glücklich ist und mich zum Spielen nach Guizhou einlädt, finden Sie ihn

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen für das Abrufen von Benutzerdaten durch MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn