在重构系统,原来系统使用的是 MySQL,现在需要换成 PostgreSQL,所以需要将数据迁移。目前的计划是将生产数据库的记录导出来,导入到测试环境的一个备份库,再用程序将数据转换导入到新的 PostgreSQL 数据库,所以涉及到生产数据库导出,由于生产数据库不能用 Navicat 等软件连接,所以只能用命令行导出,记录一下。
导出
这个步骤不需要登录数据库,直接使用 mysqldumpl 命令就可以进行导出。
导出整个库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u root -p --databases db_name > test_db.sql
导出一张表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
只导出数据库结构,不带数据
mysqldump -u 用户名 -p -d 数据库名 > 导出的文件名
-d : 只备份结构,不备份数据。也可以使用”–no-data”代替”-d”,效果一样。
实例:
如果出现 -bash: mysqldump: command not found
的报错,处理如下:
找到 MySQL 的安装路径,
find / -name mysql -print
在 /usr/bin 目录下建立 mysqldump 的软链接
这里我的安装路径是 /usr/local/mysql/bin/mysqldump ,
执行命令 ln -fs /usr/local/mysql/bin/mysqldump /usr/bin/
执行完就可以使用 mysqldump 命令了。
导入
- 进入MySQL:mysql -u 用户名 -p
- 新建一个数据库,或者进入你要导入数据的数据库
输入:mysql>create database 要创建的数据库名;
或输入:mysql>use 要使用的数据库名;
- 导入文件,使用 source 命令导入的文件
输入命令行:mysql>source /文件路径/文件名.sql;
今天是神舟十二号发射的日子,祝神舟十二号一切顺利!三位航天员平安凯旋!向中国航天致敬!
英雄出征,穿云破日!
End.
Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/mysql命令行导出数据