2017-02-19 2 views
-2

안녕하세요 유래 사용자SQL - 하나의 버튼을 클릭하여 데이터베이스를 백업하려면 어떻게해야합니까?

나는 내가 그

+2

어떤 부분에 대해 궁금한 점이 있습니까? 단추로 페이지 만들기? 양식을 게시 하시겠습니까? 데이터베이스에 연결 하시겠습니까? 백업 하시겠습니까? 지금까지 가지고있는 것과 걸린 곳을 보여주십시오. 현재의 형태에서이 질문은 너무 광범위하기 때문에. –

+0

또한 [최소, 완전하며 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve) 및 [어떻게 좋은 질문을합니까?] (http : // stackoverflow .com/help/how-to-ask) –

+0

예를 들어 주셔서 감사합니다.하지만 코딩을 시작 했으므로 데이터베이스를 백업하는 코드를 만드는 법을 알고 싶습니다. – H3X3R

답변

0

매우 간단 할 거라고 어떻게 (이유는 묻지 않습니다) 내가 버튼의 클릭으로 백업을 할 수 있도록하려는 SQL 데이터베이스가 있습니다.

새로운 PHP 웹 페이지를 작성하고 backup.php라고 말하고 양식 (데이터베이스 이름 필드 포함)과 제출 버튼을 작성하십시오. 은 클릭, 당신은 다른 임시 페이지로 리디렉션 해당 페이지에서 saving.php

말 :

<?php 
    $dbhost = 'localhost:3036'; 
    $dbuser = 'root'; 
    $dbpass = 'password'; 

    $dbname = $_POST['database_name']; 

    $backup = $dbname . date("Y-m-d-H-i-s") . '.gz'; 
    $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass ". "test_db | gzip > $backup"; 

    system($command); 
?> 

데이터베이스를 백업 한 후, 그래서 backup.php

에 다시 버튼 것을 클릭 할 때마다 리디렉션 , 데이터베이스가 원하는 위치에 백업됩니다.

+0

mysqldump -e -u [username] -p [ 암호] -h [호스트 이름] [데이터베이스 이름]> C : \ this \ is \ path \ to] file \ [filename] .sql' – Siraj

+0

위의 명령은 Linux 용이고 주석에는 windows 용입니다. 나는 당신이 리눅스에서 위치 경로를 줄 수있는 방법을 windows 명령을 통해 알게되기를 바랍니다. – Siraj

+0

이 파일은 지정된 경로에 저장됩니다. – Siraj

0

Linux 서버가있는 경우 다음 코드는 매월 31 일 동안 매일 파일을 저장합니다 당신이 그것을 실행합니다. Windows 서버의 경우 일부 개조가 필요할 수 있습니다. 현재 코드 또는 어떤 SQL 모듈을 사용하고 확실

<?php 


define('DB_HOST', 'localhost'); 
define('DB_NAME', 'your_database_name'); 
define('DB_USER', 'your_database_username'); 
define('DB_PASSWORD', 'your_username_password'); 
define('BACKUP_SAVE_TO', 'backup_storage_path'); 

$time = time(); 
$day = date('j', $time); 
if ($day == 1) { 
    $date = date('Y-m-d', $time); 
} else { 
    $date = $day; 
} 

$backupFile = BACKUP_SAVE_TO . '/' . DB_NAME . '_' . $date . '.gz'; 
if (file_exists($backupFile)) { 
    unlink($backupFile); 
} 
$command = 'mysqldump --opt -h ' . DB_HOST . ' -u ' . DB_USER . ' -p\'' . DB_PASSWORD . '\' ' . DB_NAME . ' | gzip > ' . $backupFile; 
system($command); 

?> 
0

메신저하지 :

해당 페이지로 지시하는 양식을 만듭니다. 지금 당장은 내장 sqlite 3 모듈을 사용하고 있다고 가정합니다. 이 경우 나는 아직도 당신이 백업으로 무엇을 의미하는지 알아야합니다. 사용자가 입력 한 정보를 데이터베이스에 저장하는 것입니까, 아니면 데이터베이스의 데이터를 백업으로 다른 데이터베이스에 복사 하시겠습니까? 문제는 불분명하지만, 아프다고 생각합니다.
1) 먼저 수입은 Tkinter와 SQLite는 3

import Tkinter, sqlite3 

2) 그런 다음 생성)하여, 데이타베이스가 저장되어있는 파일에 연결하고 커서

3.

conn = sqlite3.connect("table.db") 
c = conn.cursor() 
을 만들 Tkinter를 개체 (이 경우 버튼)를 클릭하고 콜백에 대한 정의를 만듭니다.

master = Tk() 

def callback(): 
    c.execute("SELECT * FROM table_name") 
    Data = c.fetchall() 
    c.execute('''CREATE TABLE IF NOT EXISTS table_backup 
     (id INTEGER PRIMARY KEY, some_row, some_row2)''') 

    row_1 = Data[0] 
    row_2 = Data[1] 
    c.execute("INSERT INTO table_backup(some_row, some_row2) VALUES(?, ?);", (row_1, row_2)) 
    conn.commit() 
b = Button(master, text="OK", command=callback()) 
b.pack() 

mainloop() 
+0

그게 가장 이상한 PHP 코드입니다. (그 질문이 태그 된 것이기 때문에) 제가 본 것은 있습니다. –

+0

네가 맞아, 나는 그 태그를 보지 못했다. thats sqlite 3. PHP에 대한 경험이 없으므로 미안합니다. 잊어 버리십시오 :) –

+0

여기에 많은 권리가 없습니다. PHP 대신 파이썬. MySQLite 대신 SQLite3 (태그 중 하나이기도 함). :-). –

관련 문제