windows下Mysql 怎样备份和还原?

windows下Mysql 怎样备份和还原?,第1张

前提是把MYSQL的安装路径\bin添加到系统环境变量PATH中了。

备份:mysqldump

-u

root

-p123456

kcgl>

c:\20090219.sql

mysqldump

备份命令

root

用户名(root管理员)

123456

密码

kcgl

备份的数据库

>

备份符号

20090219.sql

备份的文件名

还原:

mysql

-u

root

-p123456

kcgl<

c:\20090219.sql

mysql

还原命令

root

用户名(root管理员)

123456

密码

dbcurr

备份的数据库名

<

还原符号

20090219.sql还原的文件名

注意:首先要确保你的mysql

中有kcgl这个库,还原命令是不会自动建库的。

mysqldump

远程备份

mysqldump

-h

ip

-uroot

-proot

database

>

c:\data.sql

---------其他---------

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命令介绍

--all-databases,

-A:

备份所有数据库

--databases,

-B:

用于备份多个数据库,如果没有该选项,mysql

dump

把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysql

dum把每个名字都当作为数据库名。

--force,

-f:即使发现sql错误,仍然继续备份

--host=host_name,

-h

host_name:备份主机名,默认为localhost

--no-data,

-d:只导出表结构

--password[=password],

-p[password]:密码

--port=port_num,

-P

port_num:制定TCP/IP连接时的端口号

--quick,

-q:快速导出

--tables:覆盖

--databases

or

-B选项,后面所跟参数被视作表名

--user=user_name,

-u

user_name:用户名

--xml,

-X:导出为xml文件

1.备份全部数据库的数据和结构

mysql

dump

-uroot

-p123456

-A

>F:\all.sql

2.备份全部数据库的结构(加

-d

参数)

mysql

dump

-uroot

-p123456

-A

-d>F:\all_struct.sql

3.备份全部数据库的数据(加

-t

参数)

mysql

dump

-uroot

-p123456

-A

-t>F:\all_data.sql

4.备份单个数据库的数据和结构(,数据库名mydb)

mysql

dump

-uroot

-p123456

mydb>F:\mydb.sql

5.备份单个数据库的结构

mysql

dump

-uroot

-p123456

mydb

-d>F:\mydb.sql

6.备份单个数据库的数据

mysql

dump

-uroot

-p123456

mydb

-t>F:\mydb.sql

7.备份多个表的数据和结构(数据,结构的单独备份方法与上同)

mysql

dump

-uroot

-p123456

mydb

t1

t2

>f:\multables.sql

8.一次备份多个数据库

mysql

dump

-uroot

-p123456

--databases

db1

db2

>f:\muldbs.sql

还原部分分(1)mysql

命令行source方法

(2)系统命令行方法

1.还原全部数据库:

(1)

mysql

命令行:mysql

>source

f:\all.sql

(2)

系统命令行:

mysql

-uroot

-p123456

use

mydb

mysql

>source

f:\mydb.sql

(2)

mysql

-uroot

-p123456

mydb

use

mydb

mysql

>source

f:\multables.sql

(2)

mysql

-uroot

-p123456

mydb

source

f:\muldbs.sql

(2)

系统命令行:

mysql

-uroot

-p123456

评论

0

0

加载更多

正规的方法(官方建议):

导出要用到MySQL的mysqldump工具,基本用法是:

mysqldump [OPTIONS] database [tables]

如果你不给定任何表,整个数据库将被导出。

通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。

注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。

mysqldump支持下列选项:

--add-locks

在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。

--add-drop-table

在每个create语句之前增加一个drop table。

--allow-keywords

允许创建是关键词的列名字。这由在列名前面加表名的方法做到。

-c, --complete-insert

使用完整的insert语句(用列名字)。

-C, --compress

如果客户和服务器均支持压缩,压缩两者间所有的信息。

--delayed

用INSERT DELAYED命令插入行。

-e, --extended-insert

使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)

-#, --debug[=option_string]

跟踪程序的使用(为了调试)。

--help

显示一条帮助消息并且退出。

--fields-terminated-by=...

--fields-enclosed-by=...

--fields-optionally-enclosed-by=...

--fields-escaped-by=...

--fields-terminated-by=...

这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。

LOAD DATA INFILE语法。

-F, --flush-logs

在开始导出前,洗掉在MySQL服务器中的日志文件。

-f, --force,

即使我们在一个表导出期间得到一个SQL错误,继续。

-h, --host=..

从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。

-l, --lock-tables.

为开始导出锁定所有表。

-t, --no-create-info

不写入表创建信息(CREATE TABLE语句)

-d, --no-data

不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!

--opt

同--quick --add-drop-table --add-locks --extended-insert --lock-tables。

应该给你为读入一个MySQL服务器的尽可能最快的导出。

-pyour_pass, --password[=your_pass]

与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。

-P port_num, --port=port_num

与一台主机连接时使用的TCP/IP端口号。(这用于连接到localhost以外的主机,因为它使用 Unix套接字。)

-q, --quick

不缓冲查询,直接导出至stdout;使用mysql_use_result()做它。

-S /path/to/socket, --socket=/path/to/socket

与localhost连接时(它是缺省主机)使用的套接字文件。

-T, --tab=path-to-some-directory

对于每个给定的表,创建一个table_name.sql文件,它包含SQL CREATE 命令,和一个table_name.txt文件,它包含数据。 注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据--fields-xxx和--lines--xxx选项来定。

-u user_name, --user=user_name

与服务器连接时,MySQL使用的用户名。缺省值是你的Unix登录名。

-O var=option, --set-variable var=option

设置一个变量的值。可能的变量被列在下面。

-v, --verbose

冗长模式。打印出程序所做的更多的信息。

-V, --version

打印版本信息并且退出。

-w, --where='where-condition'

只导出被选择了的记录;注意引号是强制的!

"--where=user='jimf'" "-wuserid>1" "-wuserid<1"

最常见的mysqldump使用可能制作整个数据库的一个备份:

mysqldump --opt database >backup-file.sql

但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的:

mysqldump --opt database | mysql --host=remote-host -C database

由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:

mysqladmin create target_db_name

mysql target_db_name <backup-file.sql

使用工具的话更方便,根本不需要写命令,export to sql


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8522897.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存