MySQL命令行SQL脚本的导入导出小结(数据库的备份与还原)

时间:2022-09-20 07:29:42

1.设置环境变量

要想在命令行下各处都能执行mysql命令,必须在系统变量Path中添加mysql的命令所在的目录。例如我安装的是集成PHP环境的mysql,在D盘xampps下,则我需要将“;D:\xampps\mysql\bin”添加到Path的最后面。如下图所示:
MySQL命令行SQL脚本的导入导出小结(数据库的备份与还原)
如果不设置环境变量,只能进入到“D:\xampps\mysql\bin”目录下执行mysql命令。

2.命令行导入

方法一:未连接数据库时方法

语法格式:mysql -h ip -u userName -p dbName < sqlFilePath (最后没有分号)
-h : 数据库所在的主机。如果是本机,可以使用localhost,或者省略此项;
-u : 连接数据库用户名。
-p : 连接数据库密码。出于安全考虑,一般不在-p之后直接写出明文的密码。整个命令回车之后,数据库会要求输入密码,那个时候再输入密码将以**的形式显示出来。有一定的保护作用。
dbName : 要使用的具体的某个数据库。这个不是必须的,如果sql脚本中没有使用“use dbName”选择数据库,则此处必须制定数据库;如果使用了”use dbName”,则可以省略。
sqlFilePath : sql脚本的路径。如我将sql脚本放在了D盘,我的sql脚本的名字是”test_sql.sql”。则路径为”D:\test_sql.sql”。
命令执行情况如下图所示:
MySQL命令行SQL脚本的导入导出小结(数据库的备份与还原)

方法二:已连接数据库时方法

语法格式:source sqlFilePath(后面没有分号)
sqlFilePath : sql脚本的路径。如我将sql脚本放在了D盘,我的sql脚本的名字是”test_sql.sql”。则路径为”D:\test_sql.sql”。
命令执行情况如下图所示:
MySQL命令行SQL脚本的导入导出小结(数据库的备份与还原)
上图中,第一次执行没有成功,因为在sql脚本中没有使用use语句指定数据库,所以需要先指定数据库。

3.命令行导出

  • 导出某个数据库:

    mysqldump -u root -p dbName > sqlFilePath

  • 导出多个数据库:

    mysqldump -u root -p –add-drop-database –databases dbName1 dbName2… > sqlFilePath
    –add-drop-database : 该选项表示在创建数据库的时候先执行删除数据库操作
    –database : 该选项后面跟着要导出的多个数据库,以空格分隔

  • 导出某个数据库的某个表:

    mysqldump -u root -p dbName tableName > sqlFilePath

  • 只导出数据库结构,不带数据:

    mysqldump -u root -p -d dbName > sqlFilePath
    -d : 只备份结构,不备份数据。也可以使用”–no-data”代替”-d”,效果一样。

导出命令执行情况如下图所示:
MySQL命令行SQL脚本的导入导出小结(数据库的备份与还原)

关于mysqldump,还有非常多的可选项,例如备份视图、触发器,按照指定条件备份数据等。更多的选项请参考下面的文章:
http://blog.csdn.net/zyz511919766/article/details/12853133
http://www.cnblogs.com/lmule/archive/2010/09/27/1837023.html
http://www.cnblogs.com/qq78292959/p/3637135.html