京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

mysql如何将数据库中的所有表布局和数据导入到另一个库

2024-11-3 22:39| 发布者: c2688| 查看: 192| 评论: 0

摘要: 目录一、题目描述二、办理方案1.使用mysqldump下令备份数据库2.创建目的数据库3.导入数据 到目的数据库三、补充知识3.1 mysqldump下令介绍3.2 常用备份下令总结一、题目描述 在当地开发一个功能,必要结合详细数据测
目录

一、题目描述

  • 在当地开发一个功能,必要结合详细数据测试代码是否正确,但服务器上的数据不可随便修改。此时则必要将服务器上某个数据库的表批量导入到当地、而后进行测试。
  • 将数据库db1中的所有表及数据(如table1、table2),批量导入到另一个数据库db2中。

二、办理方案

刚开始自己不停实行用DataGrip、Navicat的sql/csv格式导入导出,总有错误或者遗漏,比如报错中断、50张表却只导入32张等,可能是利用方式有误或者数据格式有题目。

也试过用sql语句,但仍失败。经查阅资料、实行多次,终于乐成,记录如下。

1.使用mysqldump下令备份数据库

起首使用mysqldump下令来备份源数据库。

mysqldump是MySQL自带的下令行工具,可通过在cmd(windows)或 Linux终端(Linux)中实行如下下令来备份整个数据库:

[code]mysqldump -u <username> -p <database_name> > backup.sql[/code]

其中,是数据库的用户名,<database_name>是要备份的数据库的名称,backup.sql是备份文件的名称。

实行完该下令后,会在当前目录生成一个名为backup.sql的文件,该文件包含了源数据库的所有表布局和数据。

其他的一些导出语句,可参考以下:

[code]//导出完备数据库布局和数据 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 //导出数据库布局 mysqldump -u 用户名 -p -d 数据库名 > 导出的文件名 //导出一个表,包罗表布局和数据 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 //导出一个表布局 mysqldump -u 用户名 -p -d数据库名 表名> 导出的文件名 [/code]

注:

发起使用mysqldump备份数据库,能完备生存源数据库的布局和数据。

DataGrip、Navicat的导入导出,由于两个数据库之间可能存在差异,数据布局、格式会发生改变,导致复制失败。

2.创建目的数据库

必要在目的数据库中创建对应的数据库,可以使用MySQL的下令行工具登录到目的数据库,实行以下下令来创建数据库:

[code]create database <database_name>;[/code]

其中,<database_name>是目的数据库的名称。

3.导入数据 到目的数据库

有了源数据库的备份文件和目的数据库,可以使用MySQL的下令行工具将备份的sql语句导入到目的数据库。

进入backup.sql所在目录(如果是从服务器导入到本机 可将服务器上生成的backup.sql文件下载到当地),在目的数据库的终端实行以下下令:

[code]mysql -u <username> -p <database_name> < backup.sql[/code]

其中,是目的数据库的用户名,<database_name>是目的数据库的名称,backup.sql是源数据库的备份文件。

实行完该下令后,目的数据库将包含与源数据库完全雷同的所有表布局和数据。

三、补充知识

3.1 mysqldump下令介绍

[code][root@localhost ~]# mysqldump -help Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --all-databases [OPTIONS] For more options, use mysqldump --help[/code]

登录选项

[code]1.登录选项: -u user:指定用户 -h host:指定主机 -p:表现要使用密码 -E, --events: 备份事故调理器 -R, --routines: 备份存储过程和存储函数 2.备份选项: --all-databases:备份所有数据库 --databases db1 db2:备份指定的数据库 --single-transaction:对事务引擎实行热备 --flush-logs:更新二进制日志文件 --master-data=2 1:每备份一个库就生成一个新的二进制文件(默认) 2:只生成一个新的二进制文件 --quick:在备份大表时指定该选项[/code]

3.2 常用备份下令

[code]//导出下令 #导出包罗体系数据库在内的所有数据库(all.sql默认生存在bin文件夹下面) mysqldump -u username -p --all-databases > filename.sql #导出指定数据库表布局和数据 mysqldump -u username -p dbname [tbname...] > filename.sql #导出多个数据库: mysqldump -u username -p --databases db1 db2 ...> filename.sql #导出多张表: mysqldump -u username -p --databases db1 --tables t1 t2> filename.sql #只导出表布局不导表数据,添加“-d”下令参数 mysqldump -u username -p -d dbname [tbname...] > filename.sql #只导出表数据不导表布局,添加“-t”下令参数 mysqldump -u username -p -t dbname [tbname...] > d:/user.sql #只导出db1数据库的表布局 导出:mysqldump -u root -p --no-data --databases db1 > backup.sql 导入:mysql -u root -p db1 < backup.sql #体系行导入下令 mysql -u username -p dbname < d:XX.sql(路径) mysql -u root -p db_name < d:/backup.sql #source导入 mysql> use db_name; mysql> source /backup/mysqldump/backup.sql(路径)[/code]

参数阐明:

  • [code]username[/code]:表现用户名称;
  • [code]dbname[/code]:表现必要备份的数据库名称;
  • [code]tbname[/code]:表现数据库中必要备份的数据表,可以指定多个数据表。省略该参数时,会备份整个数据库;
  • [code]右箭头“>”[/code]:用来告诉 mysqldump 将备份数据表的界说和数据写入备份文件;
  • [code]filename.sql[/code]:表现备份文件的名称,文件名前面可以加绝对路径。通常将数据库备份成一个后缀名为.sql的文件。

注意:

mysqldump 下令必须在 cmd 窗口下实行,不能登录到 MySQL 服务中实行。

输入密码后,Mysql就会进行备份了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。


来源:https://www.jb51.net/database/328560km9.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-2 01:02 , Processed in 0.028014 second(s), 19 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部