我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

备份、恢复、导入、导出语句详解

备份:

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

例子:

-uroot -p1234 - db1 a -w "id 在 (id 来自 b)" --lock-all->c:aa.txt

减少:

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

例子:

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

按条件出口:

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

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

按导入:

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

例子:

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

导出表:

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

例子:

-uroot -pa --无数据

让我们谈谈一些主要参数

--=名称

它告诉导出的数据将与哪个数据库或哪个旧版本的 MySQL 服务器兼容。值可以是 ansi、、...

- -, -C

导出的数据是包括字段名在内的完整格式,也就是所有值都写在一行。这样可以提高插入效率,但是可能会受到参数的影响,导致插入失败。所以需要谨慎使用这个参数,至少我不推荐。

----设置=

指定导出数据时使用的字符集,如果数据表没有使用默认字符集,则导出时必须指定该选项,否则再次导入数据时会产生乱码。

---键

告诉在语句的开始和结束处添加 /*!40000 ALTER TABLE table KEYS */; 和 /*!40000 ALTER TABLE table KEYS */; 语句,这可以大大提高插入语句的速度,因为它会在插入所有数据后重建索引。此选项仅适用于表。

--- = 真|假

默认情况下,---模式是启用的,因此如果您不想使用它,只需使用此选项并将其值设置为false。

--十六进制斑点

使用十六进制格式导出二进制字符串字段。如果您有二进制数据,则必须使用此选项。受影响的字段类型为,,,BLOB。

–lock-all-,-x

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

- 锁-

它和--lock-all-类似,但是它会锁定当前导出的数据表,而不是一次性锁定数据库中的所有表。该选项只适用于表。如果是表,可以使用---选项。

--no--信息,-t

仅导出数据,无需添加 TABLE 语句。

--无数据,-d

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

- 选择

这只是一个快捷选项,相当于同时添加 --add-drop- --add- --- --keys --- --lock- --quick --set- 选项。此选项允许非常快速地导出数据,并且导出的数据可以非常快速地导入。此选项默认启用,但可以使用 --skip-opt 禁用。请注意,如果您在未指定 --quick 或 --opt 选项的情况下运行,则整个结果集将保留在内存中。如果您要导出大型数据库,这可能会导致问题。

--quick,-q

导出大型表时此选项很有用,因为它强制从服务器查询中直接输出记录,而不是获取所有记录并将它们缓存在内存中。

--,-R

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

---

此选项在导出数据之前提交 BEGIN SQL 语句。BEGIN 不会阻塞任何应用程序,并且可以确保导出期间数据库的一致性。它仅适用于事务表,例如和 BDB。

此选项与 --lock- 选项互斥,因为 LOCK 将导致任何待处理的事务被隐式提交。

要导出大型表,请使用 --quick 选项。

--

导出触发器。此选项默认启用,使用 --skip- 禁用它。

其他参数请参考手册,我一般使用如下SQL来备份表:

/usr/local/mysql/bin/-uyejr-pyejr “

----设置=utf8 --opt ---=false "

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

使用以下SQL来备份表:

/usr/local/mysql/bin/-uyejr-pyejr “

----设置=utf8 --opt ---=false "

-- -R --hex-blob ---> .sql

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

/usr/local/mysql/bin/-uyejr-pyejr “

----设置=utf8 --opt ---数据=1”

--- --刷新日志> .sql

它只是在一开始请求锁住表,然后刷新,然后在导出的文件中添加一个语句,指定当前备份的位置,如果想把这个文件恢复到从机上,可以用这种方法。

1.2 恢复

备份文件是SQL脚本,可以直接导入,导入数据的方式有两种。

直接使用mysql客户端

例如:

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

使用语法(实验失败!)

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

/tmp/.sql;

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

最近拿到一个几十MB的MySQL脚本文件,准备将其恢复为数据库。

在使用 MySQL-Front 之前我曾经短暂使用过 MySQL,因此我先尝试了一下它,但是它崩溃了。

让我们这样做。首先,使用 MySQL-Front 创建一个空数据库,然后使用 mysql 命令行将其导入。

1)使用 MySQL-Front 创建一个空数据库

因为脚本里的对象都有=gbk=…指令,所以字符集都是gbk

2)启动MySQL命令行,输入密码

Mysql命令行还原phpMyAdmin导出的含有中文的SQL文件2

Mysql命令行还原phpMyAdmin导出的含有中文的SQL文件3

3)使用新创建的数据库b

输入命令:use b;

4)将文件读取字符集改为utf8,这一步很关键

一开始看到=gbk=…,以为是设置为gbk,于是使用了以下命令:

设置名称gbk;

但导入的时候全是错误,无法识别中文。

后来才知道应该设置为SQL文件本身的字符集,SQL文件本身的字符集是什么呢?

我的方法是用IDE打开文件,然后另存为,并选择“使用编码保存”

Mysql命令行还原phpMyAdmin导出的含有中文的SQL文件4

Mysql命令行还原phpMyAdmin导出的含有中文的SQL文件5

由此可知字符集为utf-8;

所以

输入命令:set names utf8;注意:不是set names utf-8;

5)导入文件

输入命令:文件路径;

很快,文件就被高效地成功导入数据库。

进入MySQL-Front查看数据导入正常,大功告成!

Mysql命令行还原phpMyAdmin导出的含有中文的SQL文件6

():

():

注意:需要配合相应操作使用,否则返回值只有1和-1(都是不正确的值)

例子:

如果 `` 则删除;

``;

使用``;

如果``;则删除表

表 ``(`ID` int,`名称`(10));

转换为 ``(`ID`,`Name`)

‘1’,‘role1’ 全部合并

‘2’,‘role2’ 全部合并

'3','角色3';

(); --输出3(返回新增记录数),【注意:如果使用into…,则只返回1】

* from ``;(); --输出3(返回选中的行数)

``set`Name`='';(); --输出3(返回修改的行数)

from ``;(); --输出3(返回删除的行数)

二维码
扫一扫在手机端查看

本文链接:https://by928.com/2952.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线