Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > เกี่ยวกับการ backup mysql ครับ คือมีวิธี ในการเขียนโคด phpในการ backup mysql ไหมครับ แบบที่ไม่ต้องเข้าไปทำใน phpmyadmin



 

เกี่ยวกับการ backup mysql ครับ คือมีวิธี ในการเขียนโคด phpในการ backup mysql ไหมครับ แบบที่ไม่ต้องเข้าไปทำใน phpmyadmin

 



Topic : 026684



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์




คือมีวิธี ในการเขียนโคด phpในการ backup mysql ไหมครับ แบบที่ไม่ต้องเข้าไปทำใน phpmyadmin น่ะครับ และก็การ restore ด้วยน่ะครับ

ของคุณครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-04-26 12:47:15 By : omaga03 View : 14599 Reply : 9
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code
mysqldump -u root -p mydatabase > db.sql

Ex: mysql_query("mysqldump -u root -p mydatabase > C:\db.sql");


Go to : ใช้ mysqldump แล้วไฟล์ที่ออกมาเป็น 0 byte ทำไงดีคะ mysqldump -uuer -ppassword backup andgt; backupfile.sql






Date : 2009-04-26 15:57:52 By : webmaster
 


 

No. 2



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


ใช้อย่างไง อ่ะครับ งง
ขอคำอธิบายที่ครับ

ขอบคุณครับ
Date : 2009-04-26 16:05:41 By : omaga03
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (PHP)
<?php
mysql_query("mysqldump -u root -p mydatabase > C:\db.sql");
?>

Date : 2009-04-26 20:09:45 By : webmaster
 


 

No. 4



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


<?php
$host="localhost";
$user="root";
$pw="";
$dbname="car_db";

$result=mysql_query("mysqldump -u root -p car_db > C:\car_db.sql");

	if($result){
		echo"==backup ok";
	}else{
		echo"==no backup";
	}
?>


ใช้แบบนี้รึเปล่าครับ เปลี่ยนแค่ mydatabase เป็น car_db ซึ่งเป็นฐานข้อมูลของผม

แล้วถ้าเกิดทำผ่านเครือข่ายต้องเพิ่มเติมตรงไหน รึเปล่าครับ

ขอบคุณครับ
Date : 2009-04-30 14:21:36 By : omaga03
 


 

No. 5

Guest


มีปัญหา ครับ คือว่าเวลาเราได้ ไฟล์ .sql ที่ dumpออกมาแล้ว สมุติผมเอาไปเก็บที่ไดรว์ >D:/xxx.sql แบบนี้ใช่ใหมครับ ปัญหามีอยู่ว่า ทำไมไฟลืที่ได้มีขนาด 0 kb.

แต่เวลาผมเปิด comman line ขึ้นมาแล้วพิมพ์คำสั่ง
mysqldump -u root -p $db_name > D/$db_name.sql
มันจะให้ผมใส่ passwor ****

ผมก็ใส่ไป และแล้วผลลัพธ์ก็คือ ได้ไฟล์ออกมาครับ ไม่มีปัญหาในไฟล์ก็มีข้อมูลอยู่เพียบ

ผมอยากถามว่า mysqldump -u root -p=$password$db_name >D:\xxx.sql ต่างจาก
mysqldump -u root -p $db_name > D:\xxx.sql ยังไงครับ เพราว่าถ้าแบบที่หนึ่งหลังจากพิมพ์มันจะให้ใส่password และไฟล์ที่ได้มีขนาดมีข้อมูลจริง แต่แบบที่สองจะไม่ถาม password แต่ไฟล์ที่ได้ทำไมมันไม่มีข้อมูลข้างใน 0 kb. นี่คือโค้ดที่ผมเขียนไว้ รบกวนแนะนำด้วยครับ

Code (PHP)
<?php 
$host="localhost"; 
$username="root"; 
$password="1234"; 
$dbname="db_project";  
$day=date("d-m-Y");
mysql_connect($host, $username, $password) or die("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
mysql_select_db($dbname) or die("ฐานข้อมูลไม่ถูกต้อง");
$sql = (" mysqldump -u root -p $dbname > D:\$dbname_$day.sql "); 
exec($sql);  
 
?>

Date : 2009-09-01 11:52:20 By : uru_pich
 


 

No. 6

Guest


Code (PHP)
<?php
$host="localhost";
$user="root";
$pw="x";
$dbname="tantip_db";

$day=date("d-m-Y");


$sql = ("C:\AppServ\MySQL\bin\mysqldump --host=$host --user=$user --password=$pw $dbname > D:/db.sql");
exec($sql); 
?>

Date : 2010-01-28 11:30:31 By : iamohmm
 


 

No. 7



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์


ลองดูลองแล้วสุดยอด

Code (PHP)
<?php
backup_tables('localhost','root','1234','db_book');


/* backup the db OR just a table */
function backup_tables($host,$user,$pass,$name,$tables = '*')
{
	
	$link = mysql_connect($host,$user,$pass);
	mysql_select_db($name,$link);
	
	//get all of the tables
	if($tables == '*')
	{
		$tables = array();
		$result = mysql_query('SHOW TABLES');
		while($row = mysql_fetch_row($result))
		{
			$tables[] = $row[0];
		}
	}
	else
	{
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
	
	//cycle through
	foreach($tables as $table)
	{
		$result = mysql_query('SELECT * FROM '.$table);
		$num_fields = mysql_num_fields($result);
		
		$return.= 'DROP TABLE '.$table.';';
		$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
		$return.= "\n\n".$row2[1].";\n\n";
		
		for ($i = 0; $i < $num_fields; $i++) 
		{
			while($row = mysql_fetch_row($result))
			{
				$return.= 'INSERT INTO '.$table.' VALUES(';
				for($j=0; $j<$num_fields; $j++) 
				{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = ereg_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ");\n";
			}
		}
		$return.="\n\n\n";
	}
	
	//save file
	$handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');
	fwrite($handle,$return);
	fclose($handle);
}
?>


Date : 2012-08-07 12:19:07 By : apirako
 


 

No. 8



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


แล้วถ้า ต้องการเฉพาะเพียงบางเรคคอร์ด ที่ต้องการหล่ะครับ ต้องเขียนโค๊ด php ยังไง ครับ


ประวัติการแก้ไข
2012-09-04 08:54:45
Date : 2012-09-03 15:41:37 By : saksri555
 


 

No. 9

Guest


แบบบ้านๆ copy ของคนโน้นที คนนี้ที รวมทั้งคิดเพิ่มเติม ผสมปนเปกันไปหมด

สร้าง table

CREATE TABLE `inv_backup` (
`id` int(11) NOT NULL,
`da` date NOT NULL,
`ti` varchar(20) NOT NULL,
`naf` varchar(200) NOT NULL,
PRIMARY KEY (`naf`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

สร้างไฟล์ bdata.php
<?php

error_reporting(E_ALL);

define("DB_USER", 'xxxxx');
define("DB_PASSWORD", 'xxxxxx');
define("DB_NAME", 'xxxxxx');
define("DB_HOST", 'localhost');
define("OUTPUT_DIR", 'database');
define("TABLES", '*');
require_once("bzip_min.php"); // include Class

//####### Class Backup_Database Start #######################
class Backup_Database {
public $host = 'localhost';
public $username = 'xxxxxx';
public $passwd = 'xxxxxxx';
public $dbName = 'xxxxxx';
public $charset = '';

//##########################################
public function del_file($idf,$naf)
{
$conn = mysql_connect($this->host, $this->username, $this->passwd); mysql_select_db($this->dbName, $conn);
$sql="delete from inv_backup where id=$idf ";
$result=mysql_query($sql,$conn);

$dir2 ="database";
unlink ("$dir2/$naf");
}
//##########################################
public function process_Database()
{
$obj = new Backup_Database(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$status = $obj->backupTables(TABLES, OUTPUT_DIR)? 'OK' : 'KO';

}
//##########################################
public function Backup_Database($host, $username, $passwd, $dbName, $charset = 'tis-620')
{
$this->host = $host;
$this->username = $username;
$this->passwd = $passwd;
$this->dbName = $dbName;
$this->charset = $charset;
$this->initializeDatabase();
}
//###################################
protected function initializeDatabase()
{
$conn = mysql_connect($this->host, $this->username, $this->passwd); mysql_select_db($this->dbName, $conn);
if (! mysql_set_charset ($this->charset, $conn))
{
mysql_query('SET NAMES '.$this->charset);
}
}
//######################################
public function backupTables($tables = '*', $outputDir = '.')
{
try {
if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result)) {
$tables[] = $row[0];
}
}else{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}
$sql = 'CREATE DATABASE IF NOT EXISTS '.$this->dbName.";\n\n"; $sql .= 'USE '.$this->dbName.";\n\n";
foreach($tables as $table)
{
//echo "Backing up ".$table." table...";
$result = mysql_query('SELECT * FROM '.$table);
$numFields = mysql_num_fields($result);
$sql .= 'DROP TABLE IF EXISTS '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$sql.= "\n\n".$row2[1].";\n\n";
for ($i = 0; $i < $numFields; $i++)
{
while($row = mysql_fetch_row($result))
{
$sql .= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$numFields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = ereg_replace("\n","\\n",$row[$j]);
if (isset($row[$j]))
{
$sql .= '"'.$row[$j].'"' ;
}else{
$sql.= '""';
}
if ($j < ($numFields-1))
{
$sql .= ',';
}
}
$sql.= ");\n";
}
}
$sql.="\n\n\n";
//echo " OK" . "<br />";
}
}
//###############################
catch (Exception $e)
{
var_dump($e->getMessage());
return false;
}
//##########################################
return $this->saveFile($sql, $outputDir);
}
//#########################################
protected function saveFile(&$sql, $outputDir = '.')
{
if (!$sql) return false;

try {
$handle = fopen($outputDir.'/db_backup_'.$this->dbName.'_'.date("Ymd_His", time()).'.sql','w+');
fwrite($handle, $sql);
$da=date("Y-m-d");
$tim=date("H:i");
$naf='db_backup_'.$this->dbName.'_'.date("Ymd_His", time()).'.sql';
$naf2='db_backup_'.$this->dbName.'_'.date("Ymd_His", time()).'';

$sql="SELECT id FROM inv_backup order BY id desc;";
$result=mysql_query($sql);
$dbarr=mysql_fetch_array($result);
if($dbarr){
$noNext=$dbarr['id']+1;
}else{
$noNext=1;
}

$ZipName1 = "database/$naf";
$ZipName = "database/$naf2.zip";
$ZipName2 = "$naf2.zip";
$zipfile = new zipfile();
$fileonserver =$ZipName1;
$filename = $ZipName1;
$zipfile -> addFile(file_get_contents($fileonserver), $filename);
$contents = $zipfile -> file();
file_put_contents($ZipName, $contents);

mysql_query("insert into inv_backup (id,da,ti,naf) values ($noNext,'$da','$tim','$ZipName2');");
fclose($handle);
$dir2 ="database";
unlink ("$dir2/$naf");

}

catch (Exception $e)
{
var_dump($e->getMessage());
return false;
}
return true;
}
//##############################################
public function detail()
{
$conn = mysql_connect($this->host, $this->username, $this->passwd); mysql_select_db($this->dbName, $conn);
echo "
<tr>
<td>
<table width=\"100%\" border=\"0\">
<tr bgcolor=gray>
<td align=center colspan=4 height=30>
<a href=\"bdatamain.php?mn=bk\" ><font color=yellow><b>Backup Database Now</td>

</tr>

<tr bgcolor=#C7C7C7 class=\"unnamed1\">
<td align=center>ชื่อ file</td>
<td align=center height=25>dat</td>
<td align=center >time</td>
<td align=center >mn</td>
</tr>";
$sql2="SELECT id FROM inv_backup order BY id desc;";
$result2=mysql_query($sql2);
$rowck=mysql_fetch_array($result2);
$idmax=$rowck["id"];

$sql="select * from inv_backup order BY id desc";
$result=mysql_query($sql,$conn);
$rows=mysql_num_rows($result);

for($i=0;$i<$rows;$i++)
{
$rs=mysql_fetch_array($result);
$idf=$rs["id"];
$naf=$rs["naf"];
echo "<tr onmouseover=\"menuOver(this,'ccff99')\" onmouseout=\"menuOut(this,'')\">";
echo "<td align=center ><a href=\"database/$naf\" ><font color=blue>".$rs["naf"]."</a></td>";
echo "<td align=center class=\"unnamed1\"><font color=gray>".$rs["da"]."</font></td>";
echo "<td align=center class=\"unnamed1\"><font color=gray>".$rs["ti"]."</font></td>";

$ckdel=$idmax-$idf;
if($ckdel<4){
?>
<td align=center class="unnamed1"><font color=gray><b>ลบ</td>
<?php }else{ ?>
<td align=center ><a href="bdatamain.php?idf=<?php echo $idf;?>&mn=del&naf=<?php echo $naf;?>"><font color=red><b>ลบ</a></td>
<?php } ?>
</tr>
<?php
}

echo "</table>";
echo "</td></tr>";
}
}
//####### Class Backup_Database End #######################

สร้างไฟล์ bdatamain.php

<?php

error_reporting(E_ALL);
include "bdata.php";

class show
{
public $mn="";

public function proxx($mn)
{
$obj = new Backup_Database(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

if($mn=="bk"){
$obj->process_Database();
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0;url=bdatamain.php?mn=ok\">";
}
if($mn=="del"){
$obj->del_file($_GET["idf"],$_GET["naf"]);
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0;url=bdatamain.php?mn=ok\">";
}

$obj->detail();
}

}
$obj2=new show;
$obj2->proxx($_GET["mn"]);

?>

สร้างไฟล์ bzip_min.php

<?php

class zipfile
{
var $datasec = array();
var $ctrl_dir = array();
var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
var $old_offset = 0;
function unix2DosTime($unixtime = 0)
{
$timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);
if ($timearray['year'] < 1980)
{
$timearray['year'] = 1980;
$timearray['mon'] = 1;
$timearray['mday'] = 1;
$timearray['hours'] = 0;
$timearray['minutes'] = 0;
$timearray['seconds'] = 0;
}
return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1);
}
function addFile($data, $name, $time = 0)
{
$name = str_replace('\\', '/', $name);
$dtime = dechex($this->unix2DosTime($time));
$hexdtime = '\x' . $dtime[6] . $dtime[7] . '\x' . $dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3] . '\x' . $dtime[0] . $dtime[1];
eval('$hexdtime = "' . $hexdtime . '";');
$fr = "\x50\x4b\x03\x04";
$fr .= "\x14\x00";
$fr .= "\x00\x00";
$fr .= "\x08\x00";
$fr .= $hexdtime;
$unc_len = strlen($data);
$crc = crc32($data);
$zdata = gzcompress($data);
$zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
$c_len = strlen($zdata);
$fr .= pack('V', $crc);
$fr .= pack('V', $c_len);
$fr .= pack('V', $unc_len);
$fr .= pack('v', strlen($name));
$fr .= pack('v', 0);
$fr .= $name;
$fr .= $zdata;
$this -> datasec[] = $fr;
$cdrec = "\x50\x4b\x01\x02";
$cdrec .= "\x00\x00";
$cdrec .= "\x14\x00";
$cdrec .= "\x00\x00";
$cdrec .= "\x08\x00";
$cdrec .= $hexdtime;
$cdrec .= pack('V', $crc);
$cdrec .= pack('V', $c_len);
$cdrec .= pack('V', $unc_len);
$cdrec .= pack('v', strlen($name) );
$cdrec .= pack('v', 0 );
$cdrec .= pack('v', 0 );
$cdrec .= pack('v', 0 );
$cdrec .= pack('v', 0 );
$cdrec .= pack('V', 32 );
$cdrec .= pack('V', $this -> old_offset );
$this -> old_offset += strlen($fr);
$cdrec .= $name;
$this -> ctrl_dir[] = $cdrec;
}

function file()
{
$data = implode('', $this -> datasec);
$ctrldir = implode('', $this -> ctrl_dir);
return $data . $ctrldir . $this -> eof_ctrl_dir . pack('v', sizeof($this -> ctrl_dir)) . pack('v', sizeof($this -> ctrl_dir)) . pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00";
}
}
?>

ลองเอาไปใช้ดูนะครับ
Date : 2013-06-17 23:40:57 By : ผ่านมา
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เกี่ยวกับการ backup mysql ครับ คือมีวิธี ในการเขียนโคด phpในการ backup mysql ไหมครับ แบบที่ไม่ต้องเข้าไปทำใน phpmyadmin
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่