趣文网 > 作文大全

3分钟短文|MySQL备份和迁移sql文件 这个指令基础又关键

2020-11-25 04:25:01
相关推荐

引言

我们把目光投向一切数据的基础——数据库。应用程序设计的那么复杂,最终不过是为了在数据库内持久化数据。

在开发阶段,如果需要导入一个SQL文件,里面存储了SQL命令,包括建表,数据插入等等操作。如何在命令行中执行呢?

学习时间

假如有一个文件,我们从其他服务器中的 phpMyAdmin 导出工具中导出,需要迁移到新的数据库内。有没有类似下面这样的指令呢?

database_name < file.sql

答案是肯定有的。在 MySQL中我们使用下面的方式:

mysql -u username -p database_name < file.sql

在服务器命令行上,运行 mysql 客户端,并使用 username + password 进行身份验证,然后指定 database_name,使用 <,指明将sql文件导入该数据库内。

当然了,file.sql 是我们虚拟的文件名,如果填写绝对路径,是非常可靠的。

如果要保留原始数据库的 routines 和 triggers,就加上 -R 和 --triggers 选项。

如果导入的sql文件内,没有 CREATE DATABASE 选项,你需要先手动创建数据库,然后导入。这可能会是导出sql文件的时候,你勾选了“--no-create-db”/ "-n" 这个选项。

深入学习

备份数据库,我们使用频次最高的,还是 mysqldump 工具,这个几乎是运维的标配了。熟悉命令行操作的同学,可以这样导出数据库:

mysqldump db_name > backup-file.sql

然后只需要按照上一节的方法,把 backup-file.sql 文件导入新的数据库就可以了。

再说一个导入的上下文。就是假如你已经进入到 mysql 的 command line了,也手动创建了数据库,这时导入操作是这样的:

mysql> use db_name;mysql> source backup-file.sql;

首先选定数据库,然后使用source指定导入sql文件。

如果你担心导入过程会出错,或者出现数据不一致的情况,那就使用事务进行控制:

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;

默认 MySQL 的 autocommit = true,是自动提交的。上面的方式,取消自动提交,改为手动整体提交。

写在最后

通读本文你可以掌握以下知识点,1)数据库备份工具 mysqldump;2)bash环境,或命令行环境下,使用 < 重定向符导入sql文件到数据库;3)手动控制导入sql的事务处理方式。

Happy coding :-)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

优秀600字作文 的智慧作文 观后感的作文 早晨作文 济南作文 环境英语作文 生活作文800字 锻炼作文 作文素材800字 作文星空 走过作文 背后的作文 写猫作文 悟空作文 看书作文 作文相伴 作文难忘的事 相信作文 哭了作文 特色美食作文 大树作文 天气的作文 优秀高中作文 英语五年级作文 英语作文100 外婆的作文 付出作文 家庭英语作文 电影英语作文 英语电影作文