首页数据库sql备份数据库语句,怎么用SQL语句备份与恢复数据库

sql备份数据库语句,怎么用SQL语句备份与恢复数据库

编程之家2023-10-18100次浏览

大家好,今天小编来为大家解答以下的问题,关于sql备份数据库语句,怎么用SQL语句备份与恢复数据库这个很多人还不知道,现在让我们一起来看看吧!

sql备份数据库语句,怎么用SQL语句备份与恢复数据库

怎么用SQL语句备份与恢复数据库

用SQL语句备份与恢复数据库的步骤:

备份: mysqldump--quick--database ondemand1--u root>bacqup.sql这样就能把数据库中ondemand1的表全部备份出来。

其中参数的格式是:--,两横杠,不是我们常用的单横杠。

quick是在数据比较多的时候,不用该参数的话,所有的数据都会先在内存缓存,接着才导出,这样会导致服务器运行减慢。

--u必须要加一个用户名,否则系统会提示你进不了ODBC数据库的。

>backup.sql则是你备份数据库的目标文件名。

sql备份数据库语句,怎么用SQL语句备份与恢复数据库

恢复:m1ysql-u root-p database_name d:\db.bak,在WIN下,路径用path/filename.sql是不行的,那就用path\filename.sql。

sql语句:

是对数据库进行操作的一种语言。结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL怎样用SQL语句备份一张数据表

“AS附近有语法错误”这个提示应该是SQL SERVER的,可见楼主是在SQL Server里执行的,而create table... as是ORACLE的语句,在SQL Server里是不能执行的,SQL Server里类似的就是

select* into person_backup from person

SQL语言:

sql备份数据库语句,怎么用SQL语句备份与恢复数据库

是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

备份MYSQL数据库SQL语句怎么写

mysqldump备份还原和mysqldump导入导出语句大全详解

mysqldump备份:

mysqldump-u用户名-p密码-h主机数据库 a-w"sql条件"--lock-all-tables>路径

案例:

mysqldump-uroot-p1234-hlocalhost db1 a-w"id in(select id from b)"--lock-all-tables> c:\aa.txt

mysqldump还原:

mysqldump-u用户名-p密码-h主机数据库<路径

案例:

mysql-uroot-p1234 db1< c:\aa.txt

mysqldump按条件导出:

mysqldump-u用户名-p密码-h主机数据库 a--where"条件语句"--no-建表>路径

mysqldump-uroot-p1234 dbname a--where"tag='88'"--no-create-info> c:\a.sql

mysqldump按导入:

mysqldump-u用户名-p密码-h主机数据库<路径

案例:

mysql-uroot-p1234 db1< c:\a.txt

mysqldump导出表:

mysqldump-u用户名-p密码-h主机数据库表

案例:

mysqldump-uroot-p sqlhk9 a--no-data

讲一下 mysqldump的一些主要参数

--compatible=name

它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL服务器相兼容。值可以为 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。

--complete-insert,-c

导出的数据采用包含字段名的完整 INSERT方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。

--default-character-set=charset

指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。

--disable-keys

告诉 mysqldump在 INSERT语句的开头和结尾增加/*!40000 ALTER TABLE table DISABLE KEYS*/;和/*!40000 ALTER TABLE table ENABLE KEYS*/;语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM表。

--extended-insert= true|false

默认情况下,mysqldump开启--complete-insert模式,因此不想用它的的话,就使用本选项,设定它的值为 false即可。

--hex-blob

使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。

--lock-all-tables,-x

在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction和--lock-tables选项。

--lock-tables

它和--lock-all-tables类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM表,如果是 Innodb表可以用--single-transaction选项。

--no-create-info,-t

只导出数据,而不添加 CREATE TABLE语句。

--no-data,-d

不导出任何数据,只导出数据库表结构。

--opt

这只是一个快捷选项,等同于同时添加--add-drop-tables--add-locking--create-option--disable-keys--extended-insert--lock-tables--quick--set-charset选项。本选项能让 mysqldump很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用--skip-opt禁用。注意,如果运行 mysqldump没有指定--quick或--opt选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。

--quick,-q

该选项在导出大表时很有用,它强制 mysqldump从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。

--routines,-R

导出存储过程以及自定义函数。

--single-transaction

该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB和 BDB。

本选项和--lock-tables选项是互斥的,因为 LOCK TABLES会使任何挂起的事务隐含提交。

要想导出大表的话,应结合使用--quick选项。

--triggers

同时导出触发器。该选项默认启用,用--skip-triggers禁用它。

其他参数详情请参考手册,我通常使用以下 SQL来备份 MyISAM表:

/usr/local/mysql/bin/mysqldump-uyejr-pyejr"

--default-character-set=utf8--opt--extended-insert=false"

--triggers-R--hex-blob-x db_name> db_name.sql

使用以下 SQL来备份 Innodb表:

/usr/local/mysql/bin/mysqldump-uyejr-pyejr"

--default-character-set=utf8--opt--extended-insert=false"

--triggers-R--hex-blob--single-transaction db_name> db_name.sql

另外,如果想要实现在线备份,还可以使用--master-data参数来实现,如下:

/usr/local/mysql/bin/mysqldump-uyejr-pyejr"

--default-character-set=utf8--opt--master-data=1"

--single-transaction--flush-logs db_name> db_name.sql

它只是在一开始的瞬间请求锁表,然后就刷新binlog了,而后在导出的文件中加入CHANGE MASTER语句来指定当前备份的binlog位置,如果要把这个文件恢复到slave里去,就可以采用这种方法来做。

1.2还原

用 mysqldump备份出来的文件是一个可以直接倒入的 SQL脚本,有两种方法可以将数据导入。

直接用 mysql客户端

例如:

/usr/local/mysql/bin/mysql-uyejr-pyejr db_name< db_name.sql

用 SOURCE语法(实验不成功!!!)

其实这不是标准的 SQL语法,而是 mysql客户端提供的功能,例如:

SOURCE/tmp/db_name.sql;

这里需要指定文件的绝对路径,并且必须是 mysqld运行用户(例如 nobody)有权限读取的文件。

OK,本文到此结束,希望对大家有所帮助。

因特网域名 中国的因特网域名体系中,商业组织的顶级域名是什么ups主机是什么?UPS主机是什么