快速备份Mysql数据库,保证数据安全 (mysql删除整个数据库备份)

随着公司业务不断发展,数据库中存储的数据量也越来越庞大,而这些数据往往是公司重要的财富和资产。因此,数据库备份和数据安全就显得尤为重要。在这篇文章中,我们将为大家介绍如何快速备份Mysql数据库,从而保证数据的安全性。

一、备份前的准备工作

在进行数据库备份前,首先需要进行一些准备工作,以保证备份的高效和安全性。

1. 定期对数据库进行维护和优化,避免数据冗余和废弃数据的存在。

2. 根据数据库的大小和复杂程度考虑备份的频率和方式。

3. 选择合适的备份工具,如Mysqldump、Xtrabackup等,也可以通过第三方工具进行备份。

4. 确保备份数据的存储位置和方式,以免在备份过程中出现数据丢失和泄露的情况。

二、使用Mysqldump备份

Mysqldump是Mysql自带的备份工具,具有简单、快速等特点。下面我们就来看一下如何使用Mysqldump进行备份。

1. 打开命令行窗口,进入mysqldump的安装目录。

2. 输入以下命令备份数据库:

mysqldump -u root -p –all-databases > bkp.sql

此命令表示备份所有的数据库,并将备份文件bck.sql保存至当前目录下。

3. 输入密码,等待备份完成。

3.1 备份指定数据库

如果只需要备份指定数据库,可以使用以下命令:

mysqldump -u root -p yourdata > yourdata.sql

此命令表示备份名为yourdata的数据库,并将备份文件yourdata.sql保存至当前目录下。

4. 备份表结构和数据

使用以下命令可以备份表结构和数据:

mysqldump -u root -p databasename tablename > tablename.sql

此命令表示备份databasename数据库中的tablename表,将备份文件保存至当前目录下。

5. 备份指定时间段的数据

我们可以根据需求备份某个时间段内的数据库数据,可以使用以下命令:

mysqldump -u root -p –databases databasename –where=”update_time>=’2023-01-01 00:00:00′ and update_time databasename.sql

6. 自定义备份名称

备份文件默认为bcp.sql,但我们也可以指定备份文件名,以及备份文件存放路径:

mysqldump -u root -p databasename > /data/backup/databasename.sql

此命令表示备份databasename数据库,并将备份文件保存至/data/backup/databasename.sql路径下。

三、使用Xtrabackup备份

Xtrabackup是Percona公司开发的备份工具,可以进行实时备份和恢复,具有备份速度快、备份数据准确等特点。下面我们就来看一下如何使用Xtrabackup进行备份。

1. 下载Xtrabackup并安装

可以通过官网下载并安装Xtrabackup。

2. 运行Xtrabackup

运行以下命令备份数据库:

innobackupex –user=root –password= /data/backup

此命令表示备份数据库,备份文件存放于/data/backup下,其中替换为你的数据库密码。如果需要备份指定数据库,可以在命令末尾加上数据库名字,如:

innobackupex –user=root –password= /data/backup databasename

此命令表示备份名为databasename的数据库。

3. 恢复备份

可以通过以下命令恢复备份:

cd /data/backup

innobackupex –apply-log –redo-only /data/backup

innobackupex –copy-back /data/backup

此命令表示将备份文件恢复至/data/backup目录下。

四、

相关问题拓展阅读:

mysql数据库备份

dump

在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表以破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事!

备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp、cpio或tar等)。每种方法都有其优缺点:

• mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库,也会发生同样的问题:如果数据库表在文件系统备份过程中被修改,进入备份的表文件主语不一致的状态,而对以后的恢复表将失去意义。文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程,这样你能采取措施确保服务器让表不受干扰。

• mysqldump比直接拷贝要慢些。

• mysqldump生成能够移植到其它机器的文本文件,甚至那些有不同硬件结构的机器上。直接拷贝文件不能移植到其它机器上,除非你正在拷贝的表使用MyISAM存储格式。ISAM表只能在相似的硬件结构的机器上拷贝。在MySQL 3.23中引入的MyISAM表存储格式解决了该问题,因为该格式是机器无关的,所以直接拷贝文件可以移植到具有不同硬件结构的机器上。只要满足两个条件:另一台机器必须也运行MySQL 3.23或以后版本,而且文件必须以MyISAM格式表示,而不是ISAM格式。

不管你使用哪种备份方法,如果你需要恢复数据库,有几个原则应该遵守,以确保更好的结果:

• 定期实施备份。建立一个计划并严格遵守。

• 让服务器执行更新日志。当你在崩溃后需要恢复数据时,更新日志将帮助你。在你用备份文件恢复数据到备份时的状态后,你可以通过运行更新日志中的查询再次运用备份后面的修改,这将数据库中的表恢复到崩溃发生时的状态。

• 以文件系统备份的术语讲,数据做物库备份文件代表完全倾倒(full dump),而更新日志代表渐进倾倒(incremental dump)。

• 使用一种统一的和易理解的备份文件命名机制。象backup1、buckup2等不是特别有意义。当实施你的恢复时,你将浪费时间找出文件里是什么东西。你可能发觉用数据库名和日期纯核液构成备份文件名会很有用。例如:

• %mysqldump samp_db >/usr/archives/mysql/samp_db.

• %mysqldump menagerie >/usr/archives/mysql/menagerie.

• 你可能想在生成备份后压缩它们。备份一般都很大!你也需要让你的备份文件有过期期限以避免它们填满你的磁盘,就象你让你的日志文件过期那样。

• 用文件系统备份备份你的备份文件。如果遇上了一个彻底崩溃,不仅清除了你的数据目录,也清除了包含你的数据库备份的磁盘驱动器,你将真正遇上了麻烦。也要备份你的更新日志。

• 将你的备份文件放在不同于用于你的数据库的文件系统上。这将降低由于生成备份而填满包含数据目录的文件系统的可能性。

用于创建备份的技术同样对拷贝数据库到另一台机器有用。氏裂最常见地,一个数据库被转移到了运行在另一台主机上的服务器,但是你也可以将数据转移到同一台主机上的另一个服务器。

1 使用mysqldump备份和拷贝数据库

当你使用mysqldumo程序产生数据库备份文件时,缺省地,文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。换句话说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。

你可以将整个数据库倾倒进一个单独的文本文件中,如下:

%mysqldump samp_db >/usr/archives/mysql/samp_db.

输出文件的开头看起来象这样:

# MySQL Dump 6.0# # Host: localhost Database: samp_db## Server version 3.23.2-alpha-log## Table structure for table ‘absence’#CREATE TABLE absence( student_id int(10) unsigned DEFAULT ‘0’ NOT NULL, date date DEFAULT ” NOT NULL, PRIMARY KEY (student_id,date));## Dumping data for table ‘absence’#INSERT INTO absence VALUES (3,”);INSERT INTO absence VALUES (5,”);INSERT INTO absence VALUES (10,”);……

文件剩下的部分有更多的INSERT和CREATE TABLE语句组成。

如果你想压缩备份,使用类似如下的命令:

%mysqldump samp_db | gzip >/usr/archives/mysql/samp_db..gz

如果你要一个庞大的数据库,输出文件也将很庞大,可能难于管理。如果你愿意,你可以在mysqldump命令行的数据库名后列出单独的表名来倾到它们的内容,这将倾倒文件分成较小、更易于管理的文件。下例显示如何将samp_db数据库的一些表倾到进分开的文件中:

%mysqldump samp_db student score event absence >grapbook.sql

%mysqldump samp_db member president >hist-league.sql

如果你生成准备用于定期刷新另一个数据库内容的备份文件,你可能想用–add-drop-table选项。这告诉服务器将DROP TABLE IF EXISTS语句写入备份文件,然后,当你取出备份文件并把它装载进第二个数据库时,如果表已经存在,你不会得到一个错误。

如果你倒出一个数据库以便能把数据库转移到另一个服务器,你甚至不必创建备份文件。要保证数据库存在于另一台主机,然后用管道倾倒数据库,这样mysql能直接读取mysqldump的输出。例如:你想从主机pit-viper.snake.net拷贝数据库samp_db到boa.snake.net,可以这样很容易做到:

%mysqladmin -h boa.snake.net create samp_db

%mysqldump samp_db | mysql -h boa.snake.net samp_db

以后,如果你想再次刷新boa.snake.net上的数据库,跳过mysqladmin命令,但要对mysqldump加上–add-drop-table以避免的得到表已存在的错误:

%mysqldump –add-drop-table samp_db | mysql -h boa.snake.net samp_db

mysqldump其它有用的选项包括:

• –flush-logs和–lock-tables组合将对你的数据库检查点有帮助。–lock-tables锁定你正在倾倒的所有表,而–flush-logs关闭并重新打开更新日志文件,新的更新日志将只包括从备份点起的修改数据库的查询。这将设置你的更新日志检查点位备份时间。(然而如果你有需要执行个更新的客户,锁定所有表对备份期间的客户访问不是件好事。)

• 如果你使用–flush-logs设置检查点到备份时,有可能更好是倾倒整个数据库。如果你倾倒单独的文件,较难将更新日志检查点与备份文件同步。在恢复期间,你通常按数据库为基础提取更新日志内容,对单个表没有提取更新的选择,所以你必须自己提取它们。

• 缺省地,mysqldump在写入前将一个表的整个内容读进内存。这通常确实不必要,并且实际上如果你有一个大表,几乎是失败的。你可用–quick选项告诉mysqldump只要它检索出一行就写出每一行。为了进一步优化倾倒过程,使用–opt而不是–quick。–opt选项打开其它选项,加速数据的倾倒和把它们读回。

• 用–opt实施备份可能是最常用的方法,因为备份速度上的优势。然而,要警告你,–opt选项确实有代价,–opt优化的是你的备份过程,不是其他客户对数据库的访问。–opt选项通过一次锁定所有表阻止任何人更新你正在倾倒的任何表。你可在一般数据库访问上很容易看到其效果。当你的数据库一般非常频繁地使用,只是一天一次地调节备份。

• 一个具有–opt的相反效果的选项是–dedayed。该选项使得mysqldump写出INSERT DELAYED语句而不是INSERT语句。如果你将数据文件装入另一个数据库并且你想是这个操作对可能出现在该数据库中的查询的影响最小,–delayed对此很有帮助。

• –compress选项在你拷贝数据库到另一台机器上时很有帮助,因为它减少网络传输字节的数量。下面有一个例子,注意到–compress对与远端主机上的服务器通信的程序才给出,而不是对与本地主机连接的程序:

%mysqldump –opt samp_db | mysql –compress -h boa.snake.net samp_db

• mysqldump有很多选项,详见《MySQL参考手册》。

2 使用直接拷贝数据库的备份和拷贝方法

另一种不涉及mysqldump备份数据库和表的方式是直接拷贝数据库表文件。典型地,这用诸如cp、tar或cpio实用程序。本文的例子使用cp。

当你使用一种直接备份方法时,你必须保证表不在被使用。如果服务器在你则正在拷贝一个表时改变它,拷贝就失去意义。

保证你的拷贝完整性的更好方法是关闭服务器,拷贝文件,然后重启服务器。如果你不想关闭服务器,要在执行表检查的同时锁定服务器。如果服务器在运行,相同的制约也适用于拷贝文件,而且你应该使用相同的锁定协议让服务器“安静下来”。

假设服务器关闭或你已经锁定了你想拷贝的表,下列显示如何将整个samp_db数据库备份到一个备份目录(DATADIR表示服务器的数据目录):

%cdDATADIR%cp -r samp_db /usr/archive/mysql

单个表可以如下备份:

%cdDATADIR/samp_db%cp member.* /usr/archive/mysql/samp_db%cp score.* /usr/archive/mysql/samp_db ….

当你完成了备份时,你可以重启服务器(如果关闭了它)或释放加在表上的锁定(如果你让服务器运行)。

要用直接拷贝文件把一个数据库从一台机器拷贝到另一台机器上,只是将文件拷贝到另一台服务器主机的适当数据目录下即可。要确保文件是MyIA格式或两台机器有相同的硬件结构,否则你的数据库在另一台主机上有奇怪的内容。你也应该保证在另一台机器上的服务器在你正在安装数据库表时不访问它们。

3 复制数据库(Replicating Database)

复制(Replication)类似于拷贝数据库到另一台服务器上,但它的确切含义是实时地保证两个数据库的完全同步。这个功能将在3.23版中出现,而且还不很成熟,因此本文不作详细介绍。

4 用备份恢复数据

数据库损坏的发生有很多原因,程度也不同。如果你走运,你可能仅损坏一两个表(如掉电),如果你倒霉,你可能必须替换整个数据目录(如磁盘损坏)。在某些情况下也需要恢复,比如用户错误地删除了数据库或表。不管这些倒霉事件的原因,你将需要实施某种恢复。

如果表损坏但没丢失,尝试用myisamchk或isamchk修复它们,如果这样的损坏可有修复程序修复,你可能根本不需要使用备份文件。关于表修复的过程,见《数据库维护与修复》。

恢复过程涉及两种信息源:你的备份文件和个更新日志。备份文件将表恢复到实施备份时的状态,然而一般表在备份与发生问题之间的时间内已经被修改,更新日志包含了用于进行这些修改的查询。你可以使用日志文件作为mysql的输入来重复查询。这已正是为什么要启用更新日志的原因。

恢复过程视你必须恢复的信息多少而不同。实际上,恢复整个数据库比单个表跟容易,因为对于数据库运用更新日志比单个表容易。

4.1 恢复整个数据库

首先,如果你想恢复的数据库是包含授权表的mysql数据库,你需要用–skip-grant-table选项运行服务器。否则,它会抱怨不能找到授权表。在你已经恢复表后,执行mysqladmin flush-privileges告诉服务器装载授权标并使用它们。

• 将数据库目录内容拷贝到其它某个地方,如果你在以后需要它们。

• 用最新的备份文件重装数据库。如果你用mysqldump产生的文件,将它作为mysql的输入。如果你用直接从数据库拷贝来的文件,将它们直接拷回数据库目录,然而,此时你需要在拷贝文件之前关闭数据库,然后重启它。

使用更新日志重复做备份以后的修改数据库表的查询。对于任何可适用的更新日志,将它们作为mysql的输入。指定–one-database选项使得mysql只执行你有兴趣恢复的数据库的查询。如果你知道你需要运用所有更新日志文件,你可以在包含日志的目录下使用这条命令:

% ls -t -r -1 update.* | xargs cat | mysql –one-databasedb_name

ls命令生成更新日志文件的一个单列列表,根据服务器产生它们的次序排序(主意:如果你修改任何一个文件,你将改变排序次序,这导致更新日志一错误的次序被运用。)

很可能你会是运用某几个更新日志。例如,自从你备份以来产生的更新日志被命名为update.392、update.393等等,你可以这样重新运行:

%mysql –one-database db_name query(“SHOW CREATE TABLE $table”);

$create = $db->fetch_row($createtable);

$tabledump .= $create.”;\n\n”;

return $tabledump;

}

/****** 备份数据库结构和所有数据 ******/

/*

函数名称:data2sql()

函数功能:把表的结构和数据转换成为SQL

函数参数:$table: 要进行提取的表名

返 回 值:返回提取后的结果,SQL

函数作者:heiyeluren

*/

function data2sql($table)

{

global $db;

$tabledump = “DROP TABLE IF EXISTS $table;\n”;

$createtable = $db->query(“SHOW CREATE TABLE $table”);

$create = $db->fetch_row($createtable);

$tabledump .= $create.”;\n\n”;

$rows = $db->query(“SELECT * FROM $table”);

$numfields = $db->num_fields($rows);

$numrows = $db->num_rows($rows);

while ($row = $db->fetch_row($rows))

{

$comma = “”;

$tabledump .= “INSERT INTO $table VALUES(“;

for($i = 0; $i Host\n”.

“# 数据库:$db->Database\n”.

“# 备份编号: “. create_sess_id() .”\n”. // 这里有一个生成session id的函数

“# 备份时间: “.time_to_date(”,6).”\n”. // 这里就是获取当前时间的函数

“#\n”.

“# 管理员:$admin ($admin_email)\n”. // 管理员的用户名和邮箱地址

“# $copyright\n”.

“#-\n\n\n”.

$sqldump;

// 保存到本地

if($saveto == “local”)

{

ob_end_clean();

header(‘Content-Encoding: none’);

header(‘Content-Type: ‘.(strpos($HTTP_SERVER_VARS, ‘MSIE’) ? ‘application/octetstream’ : ‘application/octet-stream’));

header(‘Content-Disposition: ‘.(strpos($HTTP_SERVER_VARS, ‘MSIE’) ? ‘inline; ‘ : ‘attachment; ‘).’filename=”‘.$local_filename);

header(‘Content-Length: ‘.strlen($sqldump));

header(‘Pragma: no-cache’);

header(‘Expires: 0’);

echo $sqldump;

}

// 保存到本地结束

// 保存在服务器

if($saveto == “server”)

{

if($filename != “”)

{

@$fp = fopen($filename, “w+”);

if ($fp)

{

@flock($fp, 3);

if(@!fwrite($fp, $sqldump))

{

@fclose($fp);

exit_msg(“数据文件无法保存到服务器,请检查目录属性你是否有写的权限。”);

}

else

{

exit_msg(“数据成功备份至服务器 $filename 中。”);

}

}

else

{

exit_msg(“无法打开你指定的目录”. $filename .”,请确定该目录是否存在,或者是否有相应权限”);

}

}

else

{

exit_msg(“您没有输入备份文件名,请返回修改。”);

}

}

// 保存到服务器结束

}

else

{

exit_msg(“数据表没有任何内容”);

}

/* 备份数据库结束 */

数据库陪没斗备份不芦磨是一两句编程语句就可以搞定的。。。

建议你还是看看mysql的帮助手册吧,里面察余很详细啊。

mysql 数据备份

使用直接拷贝的方法备份时,尤其要注意表没有被使用,应该对表进行读锁定或停止MySQL服务。备份一个表,需要三个文件:

对于MyISAM表:

tbl_name.frm 表的描述文件

tbl_name.MYD 表的数据文件

tbl_name.MYI 表的索引文件

对于ISAM表:

tbl_name.frm 表的描述文件

tbl_name.ISD 表的数据文件

tbl_name.I 表的索引文件

对于MyISAM表,你可以从运行在不同硬件系统的服务器之间复制文件,例如,SUN服务器和INTEL PC机之间。

当 然,这只是备份一个数据表,在很多情况下我们需要备份完整的数据库,这个时候同样可以直接复制数据库文件夹即可完成备份;若想再省点儿事,把整个数据库目 录“data”复制也可以,但是在还原数据时要注意,只能一个一个地还原数据库,因为该目录下有mysql运行时的配置文件,若正在运行的mysql配置 信息遭到还原破坏,整个mysql服务就会无法启动。

SELECT INTO OUTFILE和MYSQLDUMP备份数据:

MySQLdump工具可以把整个数据库装载到一个单独的文本文件中。这个文件包含所有重建数据库和表的SQL命令。这个命令取得所有的模式 (Schema)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),还取得所有的数据,并且为这些数据创建INSERT语句。所有的东西 都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。这个工具令人难以置信地简单而快速。

有3种方式来调用mysqldump

选择一个数据库或一个数据表备份猛乱汪到一个文件:

/bin> mysqldump db_name > filename.txt

选择多个数据库备份到一个文件:

/bin> mysqldump –database DB1 > filename.txt

所有数据库备份到一个文件:

/bin> mysqldump –all–database > filename.txt

Option选择:

–help,-?

显示帮助消息并退出。

–add-drop-table

这个选项将会在每一个表的前面加上DROP TABLE IF EXISTS语句,这样可以保证导回MySQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除

–add-locks

这个选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作

-c or –complete_insert

这个选项使得MySQLdump命令给每一个产生INSERT语句加上陪信列(field)的名字。当把数据导出导另外一个数据库时这个选项很有用。

–delayed-insert 在INSERT命令中加入DELAY选项

-F or –flush-logs 使用这个选项,在执行导出之前将会刷新MySQL服务器的log.

-f or –force 使用这个选项,即使有错误发生,仍然继续导出

–full 这个选项把附加信息也加到CREATE TABLE的语句中

-l or –lock-tables 使用这个选项,导出表的时候服务器将会给表加锁。

-t or –no-create- info

这个选项使的MySQLdump命令不创建CREATE TABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便。

-d or –no-data 这个选项使的MySQLdump命令不创建INSERT语枝仔句。

在您只需要DDL语句时,可以使用这个选项。

–opt 此选项将打开所有会提高文件导出速度和创造一个可以更快导入的文件的选项。

-q or –quick 这个选项使得MySQL不会把整个导出的内容读入内存再执行导出,而是在读到的时候就写入导文件中。

-T path or –tab = path

这 个选项将会将数据库中每一个表创建两个文件,一个文件包含DDL语句或者表创建语句,另一个文件包含数据。DDL文件被命名为 table_name.sql,数据文件被命名为table_name.txt。该参数的path为存放目录,而且该目录必须已经存在。 如:/bin>mysqldump –uroot –p –tab=d:\\ mydata

-w “WHERE Clause” or –where = “Where clause ” 筛选将要放到导出文件的数据。

下面来看几组mysqldump命令案例:

将数据库mydata的内容备份到mydata.txt文件中:

/bin>MySQLdump –uroot -p mydata > d:\\mydata.txt

将mydata数据库中的users表的内容备份到d:\\users.txt:

/bin>MySQLdump –uroot -p mydata users > d:\\users.txt

将mydata数据库中的users表username值为“feihu”的数据备份到d:\\users.txt:

/bin>MySQLdump –uroot -p –where=”username=’feihu’” mydata users > d:\\users.txt;

将mydata数据库以及内部表的创建结构(DDL)备份到d:\\users.txt:

/bin>MySQLdump –uroot –p -d mydata > d:\\mydata.txt

将mydata和mydata2数据库同时备份到d:\\users.txt:

/bin> MySQLdump –uroot –p -d mydata mydata2 > d:\\mydata.txt

将所有数据备份到一个数据库,命令怎么写呢???

schema: 模式The set of statements, expressed in data definition language, that completely describe the structure of a data base.(一组以数据定义语言来表达的语句集,该语句集完整地描述了数据库的结构。)

当需要将还原备份数据时,使用如下语句:

/bin>mysql –uroot –p mydata source d:\mydata.txt;

LOAD DATA INFILE和MYSQLIMPORT恢复数据

关于load data infile语句的使用已经在别一节讲述过了,详细请参考“使用LOAD DATA和INSERT语句导入Mysql数据”。如果你仅仅恢复数据, mysqlimport完全是与LOAD DATA 语句对应的,读者可以任意选择一个去实现。

MySQLimport位于MySQL/bin目录中,是MySQL的一个载入(或者说导入)数据的一个非常有效的工具。这是一个命令行工具。有两个参数 以及大量的选项可供选择。这个工具把一个文本文件(textfile)导入到你指定的数据库和表中。比方说我们要从文件users.txt中把数据导入到 数据库mydata中的表users中:

/bin>mysqlimport –uroot –p mydata d:\users.txt

注意:这里users.txt是我们要导入数据的文本文件,而mydata是我们要操作的数据库,数据库中的表名是users,这里文本文件的数据格式必须与users表中的记录格式一致,否则MySQLimport命令将会出错。

其中表的名字是导入文件的之一个句号(.)前面文件字符串,另外一个例子:MySQLimport mydata users.2023.10.txt;  那么我们将把文件中的内容导入到数据库mydata 中的users表中。

上面的例子中,都只用到两个参数,并没有用到更多的选项,下面介绍MySQLimport的选项

-d or –delete 新数据导入数据表中之前删除数据数据表中的所有信息

-f or –force 不管是否遇到错误,MySQLimport将强制继续插入数据

-i or –ignore MySQLimport跳过或者忽略那些有相同唯一关键字的行, 导入文件中的数据将被忽略。

-l or -lock-tables 数据入之前锁住表,这样就防止了,你在更新数据库时,用户的查询和更新受到影响。

-r or -replace 这个选项与-i选项的作用相反;此选项将替代表中有相同唯一关键字的记录。

–fields-enclosed-by= char 指定文本文件中数据的记录时以什么括起的, 很多情况下数据以双引号括起。 默认的情况下数据是没有被字符括起的。

–fields-terminated-by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。默认的分隔符是跳格符(Tab)

–lines-terminated-by=str 此选项指定文本文件中行与行之间数据的分隔字符串或者字符。 默认的情况下MySQLimport以newline为行分隔符。您可以选择用一个字符串来替代一个单个的字符:一个新行或者一个回车。

MySQLimport命令常用的选项还有-v 显示版本(version),-p 提示输入密码(password)等。

如果,我们要导入一个文件(Orders.txt)中行的记录格式是这样的:

“1”, “ORD89876”, “1 Dozen Roses”, “”

我们的任务是要把这个文件里面的数据导入到数据库mydata中的表格Orders中,我们使用这个命令:

/Bin>MySQLimport -uroot–prl –fields-enclosed-by=” –fields-terminated-by=, mydata Orders.txt

比如我们要插入一些数据,使用包含下面文本的文件(文件名为New_Data.sql,当然我们也可以取名为New_Data.txt及任何其他的合法名字,并不一定要以后缀sql结尾):

USE mydata; INSERT INTO Orders (Orders_ID, username) VALUES(1, “Block”); INSERT INTO Orders (Orders_ID, username) VALUES(2, “Newton”); INSERT INTO Orders (Orders_ID, username) VALUES(3, “Simmons”);

注意上面的这些句子的语法都必须是正确的,并且每个句子以分号结束。上面的USE命令选择数据库,INSERT命令插入数据。

然后运行下面的命令:

/bin>mysql –uroot –p mydata

接着按提示输入密码,如果上面的文件中的语句没有错误,那么这些数据就被导入到了数据库中。

方法一:如果使用的是虚拟主机,可以用使用phpmyadmin来备份数据库。

  1)登陆phpmyadmin。登陆后左边会出现数据库列表,单击要备份的数据库,如图。

2)在弹出的页面中,右侧上部单击“导出”按钮,一般保持默认选项,最下面“另存为文件”,选择“ZIP压缩”,最后单击执行按钮,如图

3)弹出保存文件后,保存文件即可,如图。

  方法二:如果数据库可以使用外部链接。可以使用SQLyogEnt来备份。

  1)打开SQLyogEnt,并登陆mysql服务器,前面的文章已经讲过,如果还不明白的可以看这里《MySql管理利器SQLyogEnt初识(php建立数据库)》。

  2)在左边数据库菜单选择要备份的书库,然后右击它。在弹出的菜谈昌陵单中,选择Backup Database as sql dump,如图。

3)在弹出的对话框中,“export to file”即时备份数据迅型库文件含戚要保存的位置,其他保持默认选项,单击“Export”按钮,开始备份。如图。

 如果数据库是存放在和程序一台服务器的时候,及数据库地址为localhost的时候,备份mysql数据库一般采用之一种方法,如果mysql数据库可以外部登录,就可以使用第二种方式。如果是独立服务器,可以直接复制数据库源文件即可,这里就不详细讲解了。

方法:

方法一:如果使用的是虚拟主机,可以用使用phpmyadmin来备份数据库。

1)登陆phpmyadmin。登陆后左边会出现数据库列表,单击要备份的数据库。

2)在弹出的页面中,右侧上部单击“导出”按钮,一般保持默认选桐辩项,最下面“另存斗轮耐为文件”,选择“ZIP压缩”,最后单击执行按钮。

3)弹出保存文件后,保存文件即可。

方法二:如果数据库可以使用外部链接。可以使用SQLyogEnt来备份。

1)打开SQLyogEnt,并登陆mysql服务器。

2)在左边数据库菜单选择要备份的书库,然后右击它。在弹出的菜单中,选择Backup Database as sql dump。

3)在弹出的对话框中,“export to file”即时备份数据库文件要保存的位置,其他保持默认选项,单击“Export”按钮,开始备空春份。

注意事项

mysql数据自动备份,大家一般怎么弄

打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”基租帆,再点击“新建批处理作业”。

双击上面的可用任务,它就会到下面的列表里去,代表你选择了这个任务。

点击保存,弹出个命名对话框,给这个任务取个名字,点击“确定”。

点击“设置”计划任务。

弹出的对话框,选择“计划”,再点击“新建”。

这里设置为从2023年1月24号起每天早上九点备份该数据库。如果你想提高备份频率、或者设置备份截止日期,请点击“高级”。

高级选项可以把备份设置的更精细,比如这里设置的是在24小时内每隔2小时就备份一次。加上搏雹前面的基本设置,任务计划就是:从2023年1月24号开始,每天九点,每隔2小时备份一次,每天的备份型山都持续24小时。

最后,输入电脑密码就大功告成。

依次单击:开始–程序–Microsoft SQL Server–企业管理器–SQL Server组–管理–数据库维护计划

在右侧空白处右键单击,新建维护计划–勾选要备份的数据库–下一步

指定数据库备份计划–调度–单击”更改”–设置备亮瞎份的时间,备份周期–下一步

每日频率即是每天什么时间开始进行备份

发生频率即是执行的周期

指定备份磁盘目录–修改”使用此目录”的路径作为备份数据库的存放路径.勾选删除早于此时间的文件,我这里选择一信唯周,即是数据库备份文件把一周前的进行删除

给此任务计划填写一个名字:back 2单击”完成”,就可以在数据库维护计划中看到敬坦空刚才新建的计划.

注意事项

一定要开启sql server agent服务

mysql删除整个数据库备份的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql删除整个数据库备份,快速备份Mysql数据库,保证数据安全,mysql数据库备份,mysql 数据备份,mysql数据自动备份,大家一般怎么弄的信息别忘了在本站进行查找喔。


数据运维技术 » 快速备份Mysql数据库,保证数据安全 (mysql删除整个数据库备份)