>  기사  >  데이터 베이스  >  Linux下mysql数据库的备份-putty

Linux下mysql数据库的备份-putty

WBOY
WBOY원래의
2016-06-07 16:04:151475검색

前提:具有ssh登陆权限 工作步骤: 下载软件putty,设置ssh 登陆选项 登陆后,进入自己的主页目录*(通过ftp可以访问到) 执行mysqldump命令可执行数据库备份,而mysqlrestore命令则恢复数据库。 格式: pXXXXXXX@kundenserver:~ mysqldump -hdbXX.puretec.de -

前提:具有ssh登陆权限

工作步骤:

  • 下载软件putty,设置ssh 登陆选项
  • 登陆后,进入自己的主页目录*(通过ftp可以访问到)
  • 执行mysqldump命令可执行数据库备份,而mysqlrestore命令则恢复数据库。

格式:


pXXXXXXX@kundenserver:~ > mysqldump -hdbXX.puretec.de -upXXXXXXX -p******** dbXXXXXXX > dbXXXXXXXX.sql


pXXXXXXX@kundenserver:~ > mysql -hdbXX.puretec.de -upXXXXXXX -p******** dbXXXXXXX


  • 执行mysqldump后,会在当前所在目录生成一个备份文件(大小和数据库大小相当)
  • 通过ftp即可下载备份的数据库文件包
  • 恢复数据库工作与以上两部相反

你也可以写一个php脚本,来完成以上操作:


备份文件

include "../config.php";
MYSQL_CONNECT($dbhost, $dbuser, $dbpw) or die ( "

无法访问数据库

");
MYSQL_SELECT_DB($dbname) or die ( "

数据库尚未建立

");
$path = getenv('DOCUMENT_ROOT')."/DB_backup";
$result = MYSQL_QUERY("SHOW TABLES");
$numrow = MYSQL_NUM_ROWS($result);
for($i = 0;$i $table = MYSQL_RESULT($result,$i);
echo "$table ... ";
system(sprintf("mysqldump --opt -h $dbhost -u $dbuser -p$dbpw $dbname $table | gzip > %s/$table.sql.gz",$path));
echo "DONE\n\n";
}
MYSQL_CLOSE();

恢复文件

include "../config.php";
system(sprintf(
  'gunzip -c %s/dump.sql.gz | mysql -h %s -u %s -p%s %s',
  getenv('DOCUMENT_ROOT'),
  $dbhost,
  $dbuser,
  $dbpw,
  $dbname
));
echo '+DONE';

Attachment


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.