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

引言
我们把目光投向一切数据的基础——数据库 。 应用程序设计的那么复杂 , 最终不过是为了在数据库内持久化数据 。
3分钟短文 | MySQL备份和迁移sql文件,这个指令基础又关键
文章图片
在开发阶段 , 如果需要导入一个SQL文件 , 里面存储了SQL命令 , 包括建表 , 数据插入等等操作 。 如何在命令行中执行呢?
学习时间
假如有一个文件 , 我们从其他服务器中的phpMyAdmin导出工具中导出 , 需要迁移到新的数据库内 。 有没有类似下面这样的指令呢?
database_name<file.sql
答案是肯定有的 。 在MySQL中我们使用下面的方式:
mysql-uusername-pdatabase_name<file.sql
在服务器命令行上 , 运行mysql客户端 , 并使用username+password进行身份验证 , 然后指定database_name , 使用< , 指明将sql文件导入该数据库内 。
当然了 , file.sql是我们虚拟的文件名 , 如果填写绝对路径 , 是非常可靠的 。
如果要保留原始数据库的routines和triggers , 就加上-R和--triggers选项 。
如果导入的sql文件内 , 没有CREATEDATABASE选项 , 你需要先手动创建数据库 , 然后导入 。 这可能会是导出sql文件的时候 , 你勾选了“--no-create-db”/''-n''这个选项 。
深入学习
备份数据库 , 我们使用频次最高的 , 还是mysqldump工具 , 这个几乎是运维的标配了 。 熟悉命令行操作的同学 , 可以这样导出数据库:
mysqldumpdb_name>backup-file.sql
然后只需要按照上一节的方法 , 把backup-file.sql文件导入新的数据库就可以了 。
再说一个导入的上下文 。 就是假如你已经进入到mysql的commandline了 , 也手动创建了数据库 , 这时导入操作是这样的:
mysql>usedb_name;mysql>sourcebackup-file.sql;
首先选定数据库 , 然后使用source指定导入sql文件 。
如果你担心导入过程会出错 , 或者出现数据不一致的情况 , 那就使用事务进行控制:
mysql>SETautocommit=0;sourcethe_sql_file.sql;COMMIT;
【3分钟短文 | MySQL备份和迁移sql文件,这个指令基础又关键】默认MySQL的autocommit=true , 是自动提交的 。 上面的方式 , 取消自动提交 , 改为手动整体提交 。
写在最后
通读本文你可以掌握以下知识点 , 1)数据库备份工具mysqldump;2)bash环境 , 或命令行环境下 , 使用<重定向符导入sql文件到数据库;3)手动控制导入sql的事务处理方式 。
Happycoding:-)
我是@程序员小助手 , 持续分享编程知识 , 欢迎关注 。


    推荐阅读