⑴ mysql怎样导出表(表结构+数据)
定期的备份可使我们数据库崩溃造成的损失大大降低。在MySQL中进行数据备份的方法有两种,一种是使用mysqlmp程序,一种是使用mysqlhot、cp、tar或cpio等打包程序直接拷贝数据库文件。mysqlmp程序备份数据库较慢,但它生成的文本文件便于移植。使用mysqlhot等程序备份速度快,因为它直接对系统文件进行操作,需人为协调数据库数据的备份前后一致性。
使用mysqlmp备份数据库其实就是把数据库转储成一系列CREATE TABLE和INSERT语句,通过这些语句我们就可重新生成数据库。使用mysqlmp的方法如下:
% mysqlmp --opt testdb | gzip > /data/backup/testdb.bak
#--opt选项会对转储过程进行优化,生成的备份文件会小一点,后的管道操作会进行数据压缩
% mysqlmp --opt testdb mytable1,mytable2 | gzip > /data/backup/testdb_mytable.bak
#可在数据库后接数据表名,只导出指定的数据表,多个数据表可用逗号分隔
--opt选项还可激活--add-drop-table选项,它将会在备份文件的每条CREATE TABLE前加上一条DROP TABLE IF EXISTS语句。这可方便进行数据表的更新,而不会发生“数据表已存在”的错误。
用mysqlmp命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。
% mysqladmin -h remote_host create testdb
% mysqlmp --opt testdb | mysql -h remote_host testdb
另外还可通过ssh远程调用服务器上的程序,如:
% ssh remote_host mysqladmin create testdb
% mysqlmp --opt testdb | ssh remote_host mysql testdb
通过直接拷贝系统文件的方式备份数据库,在备份时,要确保没有人对数据库进行修改操作。要做到这点,最好关闭服务器。如果不能关闭的,要以只读方试锁定有关数据表。下面是一些示例:
% cp -r db /backup/db #备份db数据库到/backup/db目录
% cp table_name.* /backup/db #只备份table_name数据表
% scp -r db remotehot:/usr/local/mysql/data #用scp把数据库直接拷贝到远程服务器
在把数据库直接拷贝到远程主机时,应注意两台机器必须有同样的硬件结构,或者将拷贝的数据表全部是可移植数据表类型。
使用mysqlhot工具,它是一个Perl DBI脚本,可在不关闭服务器的情况下备份数据库,它主要的优点是:
它直接拷贝文件,所以它比mysqlmp快。
可自动完成数据锁定工作,备份时不用关闭服务器。
能刷新日志,使备份文件和日志文件的检查点能保持同步。
下面是该工具的使用示例:
% mysqlhot db /bakcup/ #把db数据库备份到backup/db目录里,会自动创建一个db目录
使用BACKUP TABLE语句进行备份,该语句最早出现在MySQL 3.23.25版本中,仅适用于MyISAM数据表。用法如下:
mysql> BACKUP TABLE mytable TO '/backup/db'; #把mytable数据表备份到/backup/db目录下
为了执行该语句,你必须拥有那些表的FILE权限和SELECT权限,备份目录还必须是服务器可写的。该语句执行时,会先把内存中的数据写入磁盘,再把各个数据表的.frm(表结构定义文件)、.MYD(数据)文件从数据目录拷贝到备份目录。它不拷贝.MYI(索引)文件,因为它能用另外两个文件重建。BACKUP TABLE语句备份时,依次锁定数据表,当同时备份多个数据表时,数据表可能会被修改,所以备份0完成时,备份文件中的数据和现时数据表中的数据可能会有差异,为了消除该差异,我们可用只读方式锁定数据表,在备份完成后再解锁。如:
mysql> LOCK TABLES tb1 READ,tb2 READ;
mysql> BACKUP TABLE tb1,tb2 TO 'backup/db';
mysql> UNLOCK TABLES;
使用BACKUP TABLE语句备份的数据表可用RESTORE TABLE重新加载到服务器。
InnoDB和BDB数据库也可用mysqlmp和直接拷贝法进行备份。使用直接拷贝法时应注意需把组成InnoDB和BDB数据库的所有文件都拷贝下来,如InnoDB的.frm文件、日志文件和表空间配置文件;BDB的数据文件、日志文件等。
使用镜像机制进行备份,我们可用SLAVE STOP语句挂起从服务器的镜像,在从服务器上通过直接拷贝法或其它工具制作备份。备份完成,用SLAVE START重新启动镜像,从服务器重新与主服务器同步,接收备份时主服务器所做的修改。
在MySQL中没有为数据库重命名的命令,但我们可用mysqlmp转储数据库,再创建一个新的空数据库,把转储文件加载到该新数据库,这样就完成数据库重命名的工作。如:
% mysqlmp old_db >db.sql #转储db数据库数据
% mysqladmin create new_db #新建一个空的数据库
% mysql new_db < db.sql #把db数据库的数据加载到新的数据库中
% mysqladmin drop old_db #删除旧的数据库
一个更简单的重命名数据库的方法是直接修改数据库目录名,但该方法不适用于InnoDB和BDB数据库。注意,在更名后,需在权限表中更新相关数据表信息,需执行以下语句:
mysql> UPDATE db SET db='new_db' WHERE db='old_db';
mysql> UPDATE tables_priv SET db='new_db' WHERE db='old_db';
mysql> UPDATE columns_priv SET db='new_db' WHERE db='old_db';
mysql> UPDATE host SET db='new_db' WHERE db='old_db';
⑵ 如何导出mysql数据库到sql文件
方法如下:
1.在本地建一个与数据库同名的数据库。
2.选择navicat中连接服务器的数据库,在菜单栏选择工具-->数据传输。
3.在弹出的的窗口中“源”部分就是你要导出的源数据库,“目标”就是本地的数据库,点击左下角全选后,再点击开始按钮。
4.点击确定。
5.点击关闭。
拓展资料:
导出数据库用mysqlmp命令(注意mysql的安装路径,即此命令的路径):
导出数据和表结构:mysqlmp
-u用户名
-p密码
数据库名
>
数据名.sql#/usr/local/mysql/bin/
mysqlmp
-uroot
-p
abc
>
abc.sql,敲回车后会提示输入密码。
⑶ mysql如何导出、导入数据库和表,详细一点
你是要导出什么样的格式的?
这里推荐一款软件 Navicat 8.2 MySQL
这是一款很不错的mysql管理软件,可以很好地处理mysql数据库,可以远程链接
有很多mysql数据备份工具和软件,网络一下
⑷ mysql怎么导出表结构
通过Navicat 工具,然后连接上库后,右键导出表结构
⑸ mysql 怎样导出一个表的结构和数据
具体方法步骤如下:
1、使用一个MySQL管理工具:SQLyog,点击菜单栏“数据库”下拉的最后一项:
2、要想转成Excel格式的只需手动将该表复制到Excel中去。
⑹ mysql如何导出表结构为文本文件
Log File物理结构
log block结构分为日志头段、日志记录、日志尾部
Block Header,占用12字节
Data部分
Block tailer,占用4字节
Block Header
这个部分是每个Block的头部,主要记录的块的信息
Block Number,表示这是第几个block,占用4字节,是通过LSN计算得来的,占用4字节
Block data len,表示该block中有多少字节已经被使用了,占用2字节
First Rec offet,表示该block中作为第一个新的mtr开始的偏移量,占用2字节
Checkpoint number,表示该log block最后被写入时的检查点的值,占用4字节
⑺ mysql导出数据库几种方法
1、确保我们的数据库已经正确的安装在电脑上了,首先打开命令行窗口,win+R快捷键打开运行窗口,输入cmd。
⑻ 怎样将MySQL数据库结构和数据导出或导入
在使用MySQL时,有时需要从数据库中导出数据,以便用在本地或其它的数据库系统之上,或者将现有数据导入MySQL数据库中。做MySQL数据库的结构和数据的导出和导入。要用到MySQL的mysqlmp工具,基本用法是:
shell> mysqlmp [OPTIONS] database [tables]
如果不给定任何表,整个数据库将被导出。
如果想看到mysqlmp的版本支持的各个选项及含义,可以执行这条命令:
shell> mysqlmp --help
下面来谈谈mysqlmp支持的主要选项及含义:
--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"部分,mysqlmp需要来自终端的口令。
-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文件,它包含数据。 注意:这只有在mysqlmp运行在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"
我们可以用mysqlmp作整个数据库的一个备份:
mysqlmp --opt database > backup-file.sql
或者我们将一个数据库的信息填充到另外一个MySQL数据库:
mysqlmp --opt database | mysql --host=remote-host -C database由于mysqlmp导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:
shell> mysqladmin create target_db_name
shell> mysql target_db_name < backup-file.sql
⑼ 如何将mysql表结构导出成Excel格式的
将mysql表结构导出成Excel格式的,以下介绍方法:
1.
用Navicat
for
MySQL工具打开,右键表选择转存sql文件
2.
填写导出名,格式修改为xls
3.
导出成功,关闭窗口
4.
查看excel文件,可看到表结构,表信息
将数据导出成excel格式:
1.
用Navicat
for
MySQL工具打开表,对表查询
2.
将查询的结果进行导出,点击导出向导,选出导出的excel格式
3.
选择导出本地路径
勾选上列名
4.
点击开始
导出完成,点关闭
5.
可以打开刚才导出的excel
⑽ 如何导出服务器mysql数据库备份
一、导出数据库用mysqlmp命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqlmp
-u用户名
-p密码
数据库名
>
数据库名.sql
#/usr/local/mysql/bin/
mysqlmp
-uroot
-p
abc
>
abc.sql
敲回车后会提示输入密码
2、只导出表结构
mysqlmp
-u用户名
-p密码
-d
数据库名
>
数据库名.sql
#/usr/local/mysql/bin/
mysqlmp
-uroot
-p
-d
abc
>
abc.sql
注:/usr/local/mysql/bin/
--->
mysql的data目录
二、导入数据库
1、首先建空数据库
mysql>create
database
abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use
abc;
(2)设置数据库编码
mysql>set
names
utf8;
(3)导入数据(注意sql文件的路径)
mysql>source
/home/abc/abc.sql;
方法二:
mysql
-u用户名
-p密码
数据库名
<
数据库名.sql
#mysql
-uabc_f
-p
abc
<
abc.sql
建议使用第二种方法导入。
注意:有命令行模式,有sql命令