mysql命令导入导出数据库实例汇总

发布时间:2019-08-31编辑:脚本学堂
mysql命令导入导出数据库的方法,mysql导出导入命令的一些例子,包括导出整个数据库、导出一个表、导出一个数据库结构、导入数据库、备份mysql数据库的命令等。

1、mysql命令导出数据库
利用mysql安装目录下bin中mysqldump程序
先在dos窗口中切换到上面bin目录下,然后敲入如下命令:
 

mysqldump -u root -p test > c:test.sql
 

root代表mysql用户名,test代表要导出的数据库名,最后面的代表数据库要导出的具体路径
敲入上述命令后,控制台要求输入mysql密码,输入正确后即可开始导出

2、mysql命令导入数据库
在dos下登入mysql,然后输入以下类似命令:
 

mysql> show database;//显示所有数据库
mysql> create database test;//创建要导入的数据库
mysql> use test;//切换到数据库
mysql> source c:test.sql  //把指定路径的数据库导入到mysql中

mysql导出导入命令

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 databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个mysql数据库
 

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

仅仅备份数据库结构
 

mysqldump –no-data –databases databasename1 databasename2 databasename3 > 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 start mysql;
只要用旧的ibdata1覆盖原来的,再把相关的数据库copy过去,然后重新启动数据库,就可以了,进入以后要是对表不能操作可能是数据表已经损坏了。
(如果不行报1146错 ,建议重启一下机器在看看)
ib_logfile0,ib_logfile1好象也可以不用覆盖,否则mysql数据库启动不了,会报1067错误。