怎样将MySQL数据库结构和数据导出或导入

怎样将MySQL数据库结构和数据导出或导入,第1张

 在使用MySQL时,有时需要从数据中导出数据,以便用在本地或其它的数据库系统之上,或者将现有数据导入MySQL数据库中。做MySQL数据库的结构和数据的导出和导入。要用到MySQL的mysqldump工具,基本用法是:
shell> mysqldump [OPTIONS] database [tables]
如果不给定任何表,整个数据库将被导出。
如果想看到mysqldump的版本支持的各个选项及含义,可以执行这条命令:
shell> mysqldump --help
下面来谈谈mysqldump支持的主要选项及含义:
--add-locks :在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。
--add-drop-table :在每个create语句之前增加一个drop table。
--allow-keywords :允许创建是关键词的列名字。这由表名前缀于每个列名做到。
-c, --complete-insert :使用完整的insert语句(用列名字)。
-C, --compress :如果客户和服务器均支持压缩,压缩两者间所有的信息。
--delayed :用INSERT DELAYED命令插入行。
-e, --extended-insert :使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)
-#, --debug[=option_string] :跟踪程序的使用(为了调试)。
--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。
-pyour_pass, --password[=PASSWORD] :与服务器连接时使用的口令。如果你不指定"="PASSWORD"部分,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_namesql文件,它包含SQL CREATE 命令,和一个table_nametxt文件,它包含数据。 注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。txt文件的格式根据--fields-xxx和--lines--xxx选项来定。
-u user_name, --user=user_name :与服务器连接时,MySQL使用的用户名。缺省值是你的Unix登录名。
-O var=option, --set-variable var=option设置一个变量的值。可能的变量被列在下面。
-v, --verbose :冗长模式。打印出程序所做的更多的信息。
-w, --where='where-condition' :只导出被选择了的记录;注意引号是强制的。
"--where=user='jimf'" "-wuserid>1" "-wuserid<1"
我们可以用mysqldump作整个数据库的一个备份:
mysqldump --opt database > backup-filesql
或者我们将一个数据库的信息填充到另外一个MySQL数据库:

mysqldump --opt database | mysql --host=remote-host -C database由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:
shell> mysqladmin create target_db_name
shell> mysql target_db_name < backup-filesql

MYSQL数据库导出第一种利用空间商提供的PHPMYADMIN管理工具导出,这种较为简单,大家查一下资料这里就不多讲了
第二种利用MYSQL安装时自带的mysqldump管理工具导出:
1)左下角开始菜单-运行-CMD进入DOS命令行状态
2)输入:CD D:/Program Files/MySQL/MySQL Server 50/bin
D:/Program Files/MySQL/MySQL Server 50/bin为你安装的MYSQL安装目录,/bin为mysqldump管理工具所有在的目录;
3)导出语法为:
mysqldump -h[hosname] -u[user_name] -p[password] --default-character-set=[char_set_name] [db_name] [save_path]
例:然后输入:mysqldump -h119121211 -umysql-pmysql123--default-character-set=utf8 aspchina --skip-lock-tables d:/aspchina_netsql
119121211为远程服务器IP,-umysql mysql为数据库用户名,-pmysql123 mysql123 为用户密码,set=utf8为导出MYSQL的编码格式,aspchina为要导出的数据库名,d:/aspchina_netsql 为导入到你本地的存放路径,aspchina_netsql你可以自由命名!
MYSQL数据库导入
如果MYSQL数据库小于2MB可以用mysqldump管理工具导入,如果大小2MB就不行了,因为空间商提供的PHPMYADMIN管理工具一般只能导入小于2MB的数据,这令一些使用MYSQL数据库的站长郁闷了!
1)左下角开始菜单-运行-CMD进入DOS命令行状态
2)D:/Program Files/MySQL/MySQL Server 50/bin为你安装的MYSQL安装目录,/bin为mysqldump管理工具所有在的目录;
3)然后输入:mysql -h119121211 -uaspchina -paspchina123456 aspchina< d:/aspchina_netsql
注释:aspchina_netsql,如果用户没有创建数据库的权限将不能导入aspchina_netsql数据库,否则spchina_netsql只能是多张表不然会出错,这点切记!

1鼠标右击数据库,选属性,在属性页面侧边栏点击文件选项,记住数据库文件物理存放路径

2关掉上述窗口,鼠标右击数据库,选任务

3分离之后在第1步中查看的文件存放路径里找到你的数据库名的两个文件(数据库名mdf数据库名ldfmdf是数据库文件,ldf是日志文件,如果有子库的话是ndf),找到复制走

4要使用的话,在管理器上鼠标右击数据库目录,选附加,找到存放的物理位置,加上去就行了

为了100分够详细了吧

你是要导出什么样的格式的?

这里推荐一款软件  Navicat 82 MySQL 

这是一款很不错的mysql管理软件,可以很好地处理mysql数据库,可以远程链接

这里可以备份mysql数据

当你备份好后,想把它转换成sql文件都可以

或者

这样就能得到你的mysql数据库的所有表和数据了

还可以原数据

或者

有很多mysql数据备份工具和软件,百度一下

MySQL命令行导出数据库:
1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录
如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 41\bin
(或者直接将windows的环境变量path中添加该目录)
2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名
如我输入的命令行:mysqldump -u root -p news > newssql (输入后会让你输入进入MySQL的密码)
(如果导出单张表的话在数据库名后面输入表名即可)
3、会看到文件newssql自动生成到bin文件下
命令行导入数据库:
1,将要导入的sql文件移至bin文件下,这样的路径比较方便
2,同上面导出的第1步
3,进入MySQL:mysql -u 用户名 -p
如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码)
4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库
5,输入:mysql>use 目标数据库名
如我输入的命令行:mysql>use news;
6,导入文件:mysql>source 导入的文件名;
如我输入的命令行:mysql>source newssql;

步骤一、首先打开navicat,点左上方的连接
在“连接名”处填写一个自己命名的名字,“主机名或IP地址”处填上sqlserver所在服务器的IP地址,关于“验证”处,如果是在本机上的装的sqlserver并且设置的是windows验证,那么就在下拉框中选择“windows 验证”;否则,“请选择SQL server 验证”,然后填写上用户名密码进行“连接测试”,连接成功后,点确定就可以了。
步骤二、连接数据库成功后,左边会出现“连接名”,可以右键或双击打开“打开连接”,这样就连接上了数据库。连接上数据库后,在里面可以清楚的看到数据库的表等项目,并且可以通过右键可以进行多种 *** 作。
步骤三、将服务器一中的数据库数据转移到服务器二的数据库中,点击“工具”,选择“数据传输”,
左边的“源”是想要转移数据的数据库服务器,右边的“目标”是目的地址,数据库的选择比如从master1到master2,这个自己选择,模式的话,两边都选择dbo,至于“数据库对象”,根据自己需要自己选择,可以只选一个表,也可以全选,设置后以后,点“开始”就可以了。
上面是直接连接两个远程数据库进行数据传输的,当然也可以直接连接一个数据库服务器,利用sql文件进行导入,选中需要导入的数据库,打开选中的数据库,展开找到dbo,右键 - 选择“导入向导”,根据需要选择sql文件导入就可以了。

如何在2个不同的 MS SQL 2000 数据库服务器直接复制数据库,如,将你自己的数据库复制到远程服务器上
 
1、启动MS SQL 2000企业管理器
2、准备建立连接
选择本地sql组
选择需要复制的数据库,如:test
3、选择 “导出数据(E)” 将本地计算机的数据复制到其他sql服务器上
4、点下一步
5、选择数据库源
数据库(D):如图
服务器(S):填写 (local) -> 表示本机,可以是本机的IP
选择:使用 Windows 身份验证(W)
数据库(B):选择你要复制的数据库,本例中是: test
6、选择目标SQL服务器的配置
服务器(S):填写服务器的ip地址,必须是ip地址


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

原文地址:https://54852.com/zz/13160686.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-30
下一篇2025-08-30

发表评论

登录后才能评论

评论列表(0条)

    保存