记mysqldump导出导入数据库的一个小问题~

接到领导要求,要求在测试服务器上面新建一个库,数据跟原来的测试库一模一样,做测试用,于是我

mysqldump -uroot -ppassword --databases dbname > newdb.sql

导出原库后,我tail一下newdb.sql,嗯,有内容。

然后create databases newdb,切换到newdb

source /root/newdb.sql

因为数据比较大~耗时比较久。大概2个小时。。。

2个小时后数据导完了,我切换到newdb,show tables之后发现。。。竟然没有数据!!!

当时在想是不是有人连上MySQL之后中断任务了…

问了一下其他同事没人连接啊,郁闷,于是我重复了上面的步骤…

两个小时后查看,还是没有!!!一阵抓狂之后冷静下来…

head -50 newdb.sql

我发现,导出的脚本前面竟然有

create dbname

然后是

use dbname

就是说我刚刚做的导入操作都是在原库上面进行的…白玩了一天~

好吧,发现问题解决问题,把那两个语句中的dbname改成newdb就行了,机智如我啊

于是我习惯性的

vim newdb.sql

问题来了,十几G的脚本文件,我竟然想用vim修改…图样图森破…

之前学习的时候记得导出的时候可以不生成这两个语句?于是查了mysqldump的参数,真有~

mysqldump -uroot -ppassword --no-create-db --databases dbname > newdb.sql

只导出数据,而不添加create databases语句。

然后head查看了一下脚本,嗯,没有那个create dbname语句了

但是。。。还是有use dbname!!!这样还是会导入到原库啊啊啊啊

没办法,还是从修改newdb.sql脚本入手吧。。

放弃用vim的想法,向童鞋请教,用sed或是awk可以实现

于是我百度了一下,用下面的命令修改:

sed -i ‘1,40s/dbname/newdb/g‘

等待了一段时候后,操作完成,head查看,已经改好

然后重复导入操作,two hours later~

整个世界,清净了……

哎~因为自己的无知结果折腾了那么久

以后一定要好好学习,发粪涂墙~

时间: 2024-12-17 22:27:40

记mysqldump导出导入数据库的一个小问题~的相关文章

第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原

MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql

atitit.sql server2008导出导入数据库大的表格文件... oracle mysql

atitit.sql server2008导出导入数据库大的表格文件... 1. 超过80M的文件是不能在查询分析器中执行的 1 2. Oracle ,mysql大的文件导入 1 2.1. 使用sql文件 1 2.2. 使用dmp二进制文件(oracle only) 1 2.3. Other 导出txt,excel在导入( 不推荐),常常不能导入 1 3. 本机导入 1 4. 远程导入 2 5. syaolon msg 2 6. 参考 3 1. 超过80M的文件是不能在查询分析器中执行的 imE

mysql命令行导出导入数据库

一.MYSQL的命令行模式的设置: 桌面->我的电脑->属性->环境变量->新建->PATH=“:path\mysql\bin;”其中path为MYSQL的安装路径.二.简单的介绍一下命令行进入MYSQL的方法:1.C:\>mysql -h hostname -u username -p 按ENTER键,等待然后输入密码.这里hostname为服务器的名称,如localhost,username为MYSQL的用户名,如root.进入命令行后可以直接操作MYSQL了.2.

mysql 导出导入数据库

一.导出数据库 1.进入MySQL目录下的bin文件夹 运行cmd :在窗口输入命令 d: 进入d盘:输入 cd Program Files\MySQL\MySQL Server 5.7\bin 命令进入bin文件 2.输入命令 mysqldump  --default-character-set=utf8 -h localhost -u user1  -p  BFAPP9> BFAPP9.sql localhost是数据库地址  user1是用户名  BFAPP9是数据库名  BFAPP9.s

mysql导出导入数据库表

1.下载数据库 mysqldump db_name  -h 192.168.5.162 -uroot -p > /var/www/db_name.sql(这个可以自定义) 2,下载数据库中的某个表: mysqldump db_name table_name -h 192.168.5.162 -uroot  -p  > /var/www/table_name.sql 3.把导出来的数据库导入我们本地数据库 首先我们必须要新建一个数据库,这个数据库就是我们要导入的数据库 mysql 创建的数据库

黑窗口下mysql导出导入数据库

导出:1,运行 cmd2,输入 mysqldump -uroot -p databasename>c:\a.sql 回车(期中databasename是你的数据库名)3,输入密码,回车.到C盘根目录下找a.sql. 导入:c:\>MySQL -u root -p mydb2 < e:\MySQL\a.sql

oracle导出导入数据库

一.给空表分配空间: 这一步一定要做,否则空表不能导出. 首先连接你要导出的库,在该库上执行以下sql: select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows = 0 执行结果是一连串的sql语句,类似alter table tablename allocate extent;选择所有结果,复制,在库里统一执行一下. 我在网上看好多人要在后面加一句 where num_rows

快速读取csv平面文件,并导入数据库,简单小工具

using DataToDeal; using LumenWorks.Framework.IO.Csv; using Microsoft.Win32; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows;

关于Python-Django数据库的一个小问题

最近在阅读Django web开发指南学习Python-Django框架,在练习创建简单blog时,发现出现的状况和书中内容不符: 1.就是目前新的Django版本没有了syncdb这个指令,取而代之的是migrate和makemigrations 2.按照书中编写完简易blog后,使用该框架创建简易blog后保存会出现错误,提示OperationalError: no such table: blog_blogpost,由于涉及到了数据库,而错误中又提示找不到blog_blogpost表,猜测