mysql怎么运行sql文件?一行代码解决数据库备份!

猿友 2021-07-05 11:17:28 浏览数 (17069)
反馈

在小编的的这篇文章(怎么打开sql文件?解密sql文件内容!)中介绍了sql文件的基本结构,而在这篇文章(Navicat怎么导入SQL文件?数据库转储详解!)中小编介绍了如何使用Navicat导入sql文件。但是,不是所有的小伙伴都用Navicat,而且这种方式一点也不具有通用性(不同的数据库管理软件导入SQL方式不同),今天小编来介绍一下一种虽然原始且没有较好的交互效果,但却完全通用且基础的方法——使用mysql命令行导入sql文件。

第一种方式——分步执行

在命令提示符中输入​​mysql –u用户名 –p密码 ​–D数据库​​  ​登陆数据库。例如

mysql -uroot -proot -DW3c

第二步,使用​source​命令(或者​\.​用法是一样的)执行(​source​命令要带上sql脚本地址)。例如

source C:\w3cschool.sql

分步执行数据库导入

第二种方式——一步到位

第二种方式一步将数据库登陆和导入合并在一起,使用​<​来导入数据库sql文件。代码如下:

mysql –u用户名 –p密码 -D数据库名称<sql脚本路径​,示例如下:

mysql –uroot –proot -DW3c<C:\w3cschool.sql

合并执行

 关于代码截图,这里执行了两次代码,原因是第一次执行弹出的警告让小编以为没有执行成功,然后小编将数据库清空了后再进行执行代码,发现该警告只不过是提醒(果然,对于程序员来说warning就应该被忽视),并不影响代码的执行结果。

另外,关于该警告的内容其实是,不要在命令提示行里输入密码(果然是可以忽视的警告呢)。

两种方式的总结与使用软件进行导入的对比

这两种方式导入sql都是比较简单的,两种方式的区别在于:合并导入执行后命令行还是基础命令行,而分步导入的是mysql命令行,如果在导入后还想对数据库进行操作,使用分步导入会更舒服(比如导入多个sql,不过呢mysql命令行并不能复制黏贴,从这点看还是基础命令行更加舒服)。

小伙伴们注意到,不管是分步导入还是合并导入,他们都要求登陆到一个固定的数据库,实际上也可以不登陆数据库,不过这种情况要求sql脚本里面存在创建数据库的语句。也就是说,如果我在脚本中加入创建数据库的语句,那么到时候输入指令就不需要带数据库参数了。

即可以采用这样的方式:​mysql –u用户名 –p密码 <sql脚本路径

这一点是Navicat不能做到的,Navicat需要自己先建立一个数据库才能进行数据库的转储。

 所以本质上来说,使用命令行方式可以直接命令造出一个完整的数据库,而使用Navicat方式是造出一个空数据库,然后导入数据库的数据,让他在内容方面和目标数据库相似,但是如果创建数据库的时候命令不同,实际上数据库还是会存在着不同。

小结

以上就是mysql命令行导入sql文件的全部内容,学习sql请关注编程狮,更多优质课程等你来看!


0 人点赞