Heim Datenbank MySQL-Tutorial phpmyadmin误删表后的恢复过程(心惊胆跳啊)

phpmyadmin误删表后的恢复过程(心惊胆跳啊)

Jun 07, 2016 pm 03:28 PM
phpmyadmin 恢复 误删 过程

话说今天不知道是抽风了还是失魂了,在用phpmyadmin删除测试数据时,竟然将整个表删除了: 等程序运行出错时,才出现整个表都没有了,而且之前也没有备份好!这下蛋疼了,这个可是production服务器,里面的数据可不能丢啊! 服务器是linux的,我不是很熟悉,

话说今天不知道是抽风了还是失魂了,在用phpmyadmin删除测试数据时,竟然将整个表删除了:

\

\ 等程序运行出错时,才出现整个表都没有了,而且之前也没有备份好!这下蛋疼了,这个可是production服务器,里面的数据可不能丢啊! 服务器是linux的,我不是很熟悉,也不知道mysql装在哪。无奈之下,google,发现有不少人也有像我一样犯傻的一回,但是几乎没有看到具体的解决方法(有说用硬盘软件找回,也有说用二进制文件找回),但是我本身对服务器不大懂,觉得好纠结,那边又在催说数据怎么没有了,还说一定得找回来。这下我更急了,晚饭都没心情吃。 这时,我找到了一些专门帮人恢复数据的技术人员。他问了我数据量,数据库引擎,当我说是‘myisam’时,他来了句:那无解了。。当时我一下子懵了。 情急之下,我想到了,之前在testing服务器里面有一个副本数据库,但是那里的数据已经有些时日了,根本没有最新一个月的数据。这根本无法解救我! 这里我在phpmyadmin中看到了这个: \ 脑里出来了google上说的用二进制恢复,就点开看一下。结果大喜!OMG,服务器开通了日志! \ 里面有数据库的操作日志,而且还是sql格式的!!!我之前没有接触过这个东西,但这时它就是我的救命稻草。我浏览了一下,里面有近一个月的更新记录,已经足够了。不过有一个问题,在phpmyadmin里面看,只能显示其中一小部份内容,面对10几w的数据行,想要一个个找出被删表的数据,太难了。 这时,我想到了可以从服务器中下载这些文件,然后得到其中的数据。说干就干,我登录服务器,搜索这些二进制文件: \ 上图中红圈的就是了 然后将这些文件一个个导出成可以阅读的sql: \ 这样将这些二进制文件一个个输出成了正常的sql文件。 这时,就是要从这些文件中找到被删表相关的数据了,于是我写了个java程序帮我做这个事情:
package com.nerve.sql.reload;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
 
import org.nerve.util.NumberUtil;
 
/**
 * @project: cloudOffice_swing
 * @file: ReloadWorker.java
 * @package: com.nerve.sql.reload
 * @description:
 *    将二进制日志导出的文件中相应表的操作记录提出出来
 * @author: 集成显卡    1053214511@qq.com
 * @date&time: Jan 23, 2014
 * @change log:
 */
public class ReloadWorker {
    
    public void read(List<String> orgF, String targetF, String table) throws Exception{
        BufferedWriter bw = new BufferedWriter(new FileWriter(targetF, true));
        
        for(String or:orgF){
            BufferedReader br = new BufferedReader(new FileReader(or));
            String t = null;
            String t2 = null;
            table = table.toUpperCase();
            while((t=br.readLine())!=null){
                t2 = t.toUpperCase();
                /*
                 * 如果是update操作,直接提出
                 */
                if(t2.startsWith("UPDATE "+table)){
                    bw.append(t+";\n");
                }
                /*
                 *  如果是insert语句,因为有一些旧服务器的数据
                 *  所以要先执行delete操作
                 */
                else if(t2.startsWith("INSERT INTO "+table)){
                    String ids = t2.substring(t2.lastIndexOf(","));
                    bw.append("delete from "+table+" where id="+NumberUtil.toDigital(ids)+";\n");
                    bw.append(t+";\n");
                }
                /*
                 * sql语句后面都要加 ; ,因为原来没有,不加的话,在导入到数据库时,出错
                 */
            }
            br.close();
        }
        
        bw.flush();
        bw.close();
    }
    
    public static void main(String[] args) throws Exception{
        long sd = System.currentTimeMillis();
        ReloadWorker w = new ReloadWorker();
        List<String> orgs = new ArrayList<String>();
        orgs.add("C:/Users/IBM_ADMIN/Desktop/000015.txt");
        orgs.add("C:/Users/IBM_ADMIN/Desktop/000016.txt");
        orgs.add("C:/Users/IBM_ADMIN/Desktop/000017.txt");
        orgs.add("C:/Users/IBM_ADMIN/Desktop/000018.txt");
        orgs.add("C:/Users/IBM_ADMIN/Desktop/000019.txt");
        
        String targetS = "C:/Users/IBM_ADMIN/Desktop/000017_sql.txt";
        w.read(orgs, targetS, "task");
        
        System.out.println("DONE, on " +(System.currentTimeMillis() - sd)/1000+" s");
    }
}
Nach dem Login kopieren
得到了汇总的sql文件后,就导入到数据库中。最后,出一个运行图: \ 终于松了一口气。(虽然这次导入花了5分钟。。) 最后提醒大家,一定要常备份,谨慎操作啊!
Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So legen Sie den Primärschlüssel in phpmyadmin fest So legen Sie den Primärschlüssel in phpmyadmin fest Apr 07, 2024 pm 02:54 PM

Der Primärschlüssel einer Tabelle besteht aus einer oder mehreren Spalten, die jeden Datensatz in der Tabelle eindeutig identifizieren. Hier sind die Schritte zum Festlegen eines Primärschlüssels: Melden Sie sich bei phpMyAdmin an. Wählen Sie Datenbank und Tabelle aus. Markieren Sie die Spalte, die Sie als Primärschlüssel verwenden möchten. Klicken Sie auf „Änderungen speichern“. Primärschlüssel bieten Datenintegrität, Suchgeschwindigkeit und Vorteile bei der Beziehungsmodellierung.

Wo gibt es die WordPress-Datenbank? Wo gibt es die WordPress-Datenbank? Apr 15, 2024 pm 10:39 PM

Die WordPress-Datenbank ist in einer MySQL-Datenbank untergebracht, die alle Website-Daten speichert und auf die über das Dashboard Ihres Hosting-Anbieters, FTP oder phpMyAdmin zugegriffen werden kann. Der Datenbankname bezieht sich auf die URL oder den Benutzernamen der Website und der Zugriff erfordert die Verwendung von Datenbankanmeldeinformationen, einschließlich Name, Benutzername, Passwort und Hostname, die normalerweise in der Datei „wp-config.php“ gespeichert sind.

So fügen Sie Fremdschlüssel in phpmyadmin hinzu So fügen Sie Fremdschlüssel in phpmyadmin hinzu Apr 07, 2024 pm 02:36 PM

Das Hinzufügen eines Fremdschlüssels in phpMyAdmin kann durch die folgenden Schritte erreicht werden: Wählen Sie die übergeordnete Tabelle aus, die den Fremdschlüssel enthält. Bearbeiten Sie die übergeordnete Tabellenstruktur und fügen Sie unter „Spalten“ neue Spalten hinzu. Aktivieren Sie Fremdschlüsseleinschränkungen und wählen Sie die referenzierende Tabelle und den Schlüssel aus. Legen Sie Aktualisierungs-/Löschvorgänge fest. Änderungen speichern.

Wie lautet das Passwort für das phpmyadmin-Konto? Wie lautet das Passwort für das phpmyadmin-Konto? Apr 07, 2024 pm 01:09 PM

Der Standardbenutzername und das Passwort für PHPMyAdmin sind root und leer. Aus Sicherheitsgründen wird empfohlen, das Standardkennwort zu ändern. Methode zum Ändern des Passworts: 1. Melden Sie sich bei PHPMyAdmin an. 2. Wählen Sie „Privilegien“ 3. Geben Sie das neue Passwort ein und speichern Sie es. Wenn Sie Ihr Passwort vergessen, können Sie es zurücksetzen, indem Sie den MySQL-Dienst stoppen und die Konfigurationsdatei bearbeiten: 1. Fügen Sie die Zeile „skip-grant-tables“ hinzu. 2. Melden Sie sich an der MySQL-Befehlszeile an und setzen Sie das Root-Passwort zurück 4. Löschen Sie die Zeile „skip-grant-tables“ und starten Sie den MySQL-Dienst neu.

Wo ist das phpmyadmin-Protokoll? Wo ist das phpmyadmin-Protokoll? Apr 07, 2024 pm 12:57 PM

Standardspeicherort für PHPMyAdmin-Protokolldateien: Linux/Unix/macOS:/var/log/phpmyadminWindows: C:\xampp\phpMyAdmin\logs\ Zweck der Protokolldatei: Fehlerbehebung bei der Überwachungssicherheit

So löschen Sie eine Datentabelle in phpmyadmin So löschen Sie eine Datentabelle in phpmyadmin Apr 07, 2024 pm 03:00 PM

Schritte zum Löschen einer Datentabelle in phpMyAdmin: Wählen Sie die Datenbank und die Datentabelle aus. Klicken Sie auf die Option „Löschen“.

So stellen Sie den Chat-Funken auf TikTok wieder her So stellen Sie den Chat-Funken auf TikTok wieder her Mar 16, 2024 pm 01:25 PM

Auf Douyin, einer Kurzvideoplattform voller Kreativität und Vitalität, können wir nicht nur eine Vielzahl spannender Inhalte genießen, sondern auch intensiv mit gleichgesinnten Freunden kommunizieren. Unter anderem sind Chat-Funken ein wichtiger Indikator für die Intensität der Interaktion zwischen den beiden Parteien und entfachen oft ungewollt die emotionale Bindung zwischen uns und unseren Freunden. Aus bestimmten Gründen kann es jedoch vorkommen, dass der Chat-Funken unterbrochen wird. Was sollten wir also tun, wenn wir den Chat-Funken wiederherstellen möchten, in der Hoffnung, dass er allen hilft? Wie kann man den Funken des Douyin-Chats wiederherstellen? 1. Öffnen Sie die Douyin-Nachrichtenseite und wählen Sie einen Freund zum Chatten aus. 2. Senden Sie Nachrichten und chatten Sie miteinander. 3. Wenn Sie 3 Tage lang ununterbrochen Nachrichten senden, können Sie das Spark-Logo erhalten. Schicken Sie sich alle drei Tage gegenseitig Bilder oder Videos

Warum wurde der phpmyadmin-Zugriff verweigert? Warum wurde der phpmyadmin-Zugriff verweigert? Apr 07, 2024 pm 01:03 PM

Gründe und Lösungen für den von phpMyAdmin verweigerten Zugriff: Authentifizierung fehlgeschlagen: Überprüfen Sie, ob Benutzername und Passwort korrekt sind. Serverkonfigurationsfehler: Passen Sie die Firewall-Einstellungen an und prüfen Sie, ob der Datenbank-Port korrekt ist. Berechtigungsproblem: Gewähren von Benutzern Zugriff auf die Datenbank. Sitzungszeitüberschreitung: Aktualisieren Sie die Browserseite und stellen Sie die Verbindung wieder her. phpMyAdmin-Konfigurationsfehler: Überprüfen Sie die Konfigurationsdatei und Dateiberechtigungen, um sicherzustellen, dass die erforderlichen Apache-Module aktiviert sind. Serverproblem: Warten Sie eine Weile und versuchen Sie es erneut oder wenden Sie sich an Ihren Hosting-Anbieter.

See all articles