Rumah pangkalan data tutorial mysql phpmyadmin误删表后的恢复过程(心惊胆跳啊)

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

Jun 07, 2016 pm 03:28 PM
phpmyadmin pulih Pemadaman secara tidak sengaja proses

话说今天不知道是抽风了还是失魂了,在用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");
    }
}
Salin selepas log masuk
得到了汇总的sql文件后,就导入到数据库中。最后,出一个运行图: \ 终于松了一口气。(虽然这次导入花了5分钟。。) 最后提醒大家,一定要常备份,谨慎操作啊!
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menetapkan kunci utama dalam phpmyadmin Bagaimana untuk menetapkan kunci utama dalam phpmyadmin Apr 07, 2024 pm 02:54 PM

Kunci utama jadual ialah satu atau lebih lajur yang mengenal pasti secara unik setiap rekod dalam jadual. Berikut ialah langkah-langkah untuk menetapkan kunci utama: Log masuk ke phpMyAdmin. Pilih pangkalan data dan jadual. Semak lajur yang anda mahu gunakan sebagai kunci utama. Klik "Simpan Perubahan". Kunci utama menyediakan integriti data, kelajuan carian dan faedah pemodelan perhubungan.

Di manakah pangkalan data wordpress wujud? Di manakah pangkalan data wordpress wujud? Apr 15, 2024 pm 10:39 PM

Pangkalan data WordPress ditempatkan dalam pangkalan data MySQL yang menyimpan semua data tapak web dan boleh diakses melalui papan pemuka penyedia pengehosan anda, FTP atau phpMyAdmin. Nama pangkalan data berkaitan dengan URL tapak web atau nama pengguna, dan akses memerlukan penggunaan bukti kelayakan pangkalan data, termasuk nama, nama pengguna, kata laluan dan nama hos, yang biasanya disimpan dalam fail "wp-config.php".

Bagaimana untuk menambah kunci asing dalam phpmyadmin Bagaimana untuk menambah kunci asing dalam phpmyadmin Apr 07, 2024 pm 02:36 PM

Menambah kunci asing dalam phpMyAdmin boleh dicapai dengan mengikuti langkah berikut: Pilih jadual induk yang mengandungi kunci asing. Edit struktur jadual induk dan tambah lajur baharu dalam "Lajur". Dayakan kekangan kunci asing dan pilih jadual dan kunci rujukan. Tetapkan operasi kemas kini/padam. simpan Perubahan.

Apakah kata laluan untuk akaun phpmyadmin? Apakah kata laluan untuk akaun phpmyadmin? Apr 07, 2024 pm 01:09 PM

Nama pengguna dan kata laluan lalai untuk PHPMyAdmin adalah akar dan kosong. Atas sebab keselamatan, adalah disyorkan untuk menukar kata laluan lalai. Kaedah untuk menukar kata laluan: 1. Log masuk ke PHPMyAdmin 2. Pilih "privileges" 3. Masukkan kata laluan baru dan simpannya; Apabila anda terlupa kata laluan anda, anda boleh menetapkannya semula dengan menghentikan perkhidmatan MySQL dan mengedit fail konfigurasi: 1. Tambah baris skip-grant-tables 2. Log masuk ke baris arahan MySQL dan tetapkan semula kata laluan root; jadual kebenaran; 4. Padam baris skip-grant-tables, mulakan semula perkhidmatan MySQL.

Di manakah log phpmyadmin? Di manakah log phpmyadmin? Apr 07, 2024 pm 12:57 PM

Lokasi lalai untuk fail log PHPMyAdmin: Linux/Unix/macOS:/var/log/phpmyadminWindows: C:\xampp\phpMyAdmin\logs\ Tujuan fail log: Menyelesaikan Masalah Keselamatan Audit

Bagaimana untuk memadam jadual data dalam phpmyadmin Bagaimana untuk memadam jadual data dalam phpmyadmin Apr 07, 2024 pm 03:00 PM

Langkah-langkah untuk memadam jadual data dalam phpMyAdmin: Pilih pangkalan data dan jadual data klik tab "Tindakan" pilih pilihan "Padam" dan lakukan operasi pemadaman;

Bagaimana untuk memulihkan percikan sembang di TikTok Bagaimana untuk memulihkan percikan sembang di TikTok Mar 16, 2024 pm 01:25 PM

Di Douyin, platform video pendek yang penuh dengan kreativiti dan kecergasan, kami bukan sahaja dapat menikmati pelbagai kandungan yang menarik, tetapi juga mempunyai komunikasi yang mendalam dengan rakan-rakan yang berfikiran sama. Antaranya, percikan sembang adalah penunjuk penting keamatan interaksi antara kedua-dua pihak, dan mereka sering secara tidak sengaja mencetuskan ikatan emosi antara kita dan rakan-rakan kita. Walau bagaimanapun, kadangkala disebabkan beberapa sebab, percikan sembang mungkin terputus, jadi apakah yang perlu kami lakukan jika kami ingin memulihkan percikan sembang ini akan membawakan anda pengenalan terperinci tentang strategi kandungan, dengan harapan dapat membantu semua orang. Bagaimana untuk memulihkan cetusan sembang Douyin? 1. Buka halaman mesej Douyin dan pilih rakan untuk bersembang. 2. Hantar mesej dan sembang antara satu sama lain. 3. Jika anda menghantar mesej secara berterusan selama 3 hari, anda boleh mendapatkan logo percikan. Selama 3 hari, hantar gambar atau video antara satu sama lain

mengapa akses phpmyadmin dinafikan mengapa akses phpmyadmin dinafikan Apr 07, 2024 pm 01:03 PM

Sebab dan penyelesaian untuk akses dinafikan oleh phpMyAdmin: Pengesahan gagal: Semak sama ada nama pengguna dan kata laluan adalah betul. Ralat konfigurasi pelayan: laraskan tetapan tembok api dan semak sama ada port pangkalan data adalah betul. Isu kebenaran: Memberi akses pengguna kepada pangkalan data. Tamat masa sesi: Muat semula halaman penyemak imbas dan sambung semula. Ralat konfigurasi phpMyAdmin: Semak fail konfigurasi dan kebenaran fail untuk memastikan modul Apache yang diperlukan didayakan. Isu pelayan: Tunggu sebentar dan cuba lagi atau hubungi pembekal pengehosan anda.

See all articles