当前位置: > 数据库 > MySQL >

MySQL导入导出数据库 方法

时间:2014-06-21 04:08来源:linux.it.net.cn 作者:IT网
内容提示:sqldump -u wcnc -p smgp_apps_wcnc >wcnc.sql 2.导出一个表   mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名   mysqldump -u wcnc -p smgp_apps_wcnc users>wcnc_users.sql 3.导出一个数据库结构  mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc>d:wcnc_db.sql   -d 没有数据 --add-drop-tab...

1.导出整个数据库
  mysqldump -u 用户名 -p 数据库名 > 导出的文件名

  mysqldump -u wcnc -p smgp_apps_wcnc >wcnc.sql

2.导出一个表

  mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

  mysqldump -u wcnc -p smgp_apps_wcnc users>wcnc_users.sql

3.导出一个数据库结构

  mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc>d:wcnc_db.sql

  -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库

  常用source 命令

  进入mysql数据库控制台,

  如mysql -u root -p

  mysql>use 数据库

  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

  mysql>source d:wcnc_db.sql

 

5. mysql导入建表sql语句时中文注释的乱码问题的解决办法如下:

   在sql文件开头加上 SET NAMES'utf8';

-------------------------------------------------------------------------------------------------

MySQL数据库备份和还原的常用命令:

备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword databasename> backupfile.sql

备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump -–add-drop-table -uusername -ppassword databasename> backupfile.sql

直接将MySQL数据库压缩备份

mysqldump -hhostname -uusername -ppassword databasename | gzip> backupfile.sql.gz

备份MySQL数据库某个(些)表

mysqldump -hhostname -uusername -ppassword databasenamespecific_table1 specific_table2 >backupfile.sql

同时备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword –databases databasename1databasename2 databasename3 >multibackupfile.sql

仅仅备份数据库结构

mysqldump –no-data –databases databasename1 databasename2databasename3 > structurebackupfile.sql

备份服务器上所有数据库

mysqldump –all-databases > allbackupfile.sql

还原MySQL数据库的命令

mysql -hhostname -uusername -ppassword databasename< backupfile.sql

还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -uusername-ppassword databasename

将数据库转移到新服务器

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.*-C databasename

--------------------------------------------------------------------------------------------------

上面为导入导出*.sql文件的操作。

MySQL数据库还可以通过拷贝来备份数据库文件,下面介绍一下注意事项。

 

Mysql安装后在data文件夹中有4种文件.frm .MYD .MYI .opt

*.frm 是描述了表的结构;
*.MYD 保存了表的数据记录;
*.MYI 则是表的索引;
*.opt 记录数据库的选项,数据库的字符集设置 (character_set_database和collation_database );

 

只要在mysql的安装文件中找到data文件夹,然后在里面建立一个文件夹,比如test。这个test其实就对应着数据库的名称,所以,你想要起什么样的数据库名称就把文件夹起什么名字。

然后把.frm文件导进去。注意还要在data目录下加入ib_logfile0,ib_logfile1,ibdata1这几个文件。
要不然在mysql里只能找到表名(其实一个.frm文件就是对应的数据库中的一个表。)
而不能对其进行操作。

 

如果查询的时候出现某某表不存在的问题,在确认.frm ,db.opt文件完整的情况下,那么这种表使用的应该是innodb表引擎,应该将数据目录中的innodb数据文件(认ibdata1)

说明:
比如你原来的mysql中有一些数据库了。可以先把原来的data改名字备份在同一目录下。(可能要改名字系统会提示有另一程序在使用这个文件,这个时候可以到控制面板的服务里面,把mysql的服务先关掉,等改完名字,把东西都导进去后再开服务)
然后另建一个data,把在里面建好数据库名把.frm导进去。

 

--------------------------------------------------------------------------------------------------

停止服务可以通过管理工具里面的服务来停,或者用cmd 打开dos界面输入net stop mysql,启动用net startmysql;

只要用旧的ibdata1覆盖原来的,再把相关的数据库copy过去,然后重新启动数据库,就ok了,进入以后要是对表不能操作可能是数据表已经损坏了。(如果不行报1146错,建议重启一下机器在看看)

ib_logfile0,ib_logfile1好象也可以不用覆盖,不然有时候mysql数据库启动不了了,报1067错误。
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容