mysqldump未导入所有数据库。

11 浏览
0 Comments

mysqldump未导入所有数据库。

我需要导入一个非常大的数据库备份。

我正在使用以下命令导入所有数据库:

mysqldump -u root -p --all-databases < localhost.sql

它可以工作,但只导入了6个数据库中的5个。

这个文件有70万行,所以很难只选择我关心的最后一个数据库。

有什么建议吗?谢谢!

编辑:

使用

mysqldump -u root -p joomla < localhost.sql

出现错误

    '[root@tp lota]# mysqldump -u root -p joomla < localhost.sql
Enter password: 
-- MySQL dump 10.13  Distrib 5.1.69, for redhat-linux-gnu (x86_64)
--
-- 主机:localhost    数据库:joomla
-- ------------------------------------------------------
-- 服务器版本   5.1.69
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
mysqldump: 在选择数据库时出现错误:1049: 未知数据库 'joomla'

编辑 #2:问题是备份中的数据库信息模式。删除后一切正常。谢谢你们的回答。

0
0 Comments

问题原因:在新版本的mysql中,设置了sql_mode为NO_AUTO_CREATE_USER,导致从SQL文件中恢复数据失败。

解决方法:

1. 打开终端并输入以下命令:

mysql -u root -p

2. 检查已存在的数据库:

mysql> show databases;

3. 如果尚未创建数据库,则创建一个新的数据库:

mysql> create database "Name";

4. 选择新创建的数据库:

mysql> USE ABCD;

5. 选择机器上SQL文件的路径:

mysql> source /home/Desktop/new_file.sql;

6. 按下回车键,等待一段时间,如果一切顺利执行完毕,则退出mysql:

mysql> exit

感谢解决方案,虽然在大多数情况下并不是最智能的解决方案,但当较新版本的mysql在导出时出现错误时,设置sql_mode为NO_AUTO_CREATE_USER是导致从这种文件中恢复数据失败的原因,类似mysql -u USER -p DB < dump.sql这样的简单导出命令。但幸运的是,您的步骤起作用了。

Adnan Ali 感谢,对于大多数情况来说,它比其他解决方案更好用。

0
0 Comments

问题:mysqldump无法导入所有数据库的原因是什么?如何解决?

原因:mysqldump命令用于导出数据,而不是导入数据。因此使用mysqldump命令导入数据时会出现问题。另外,在导入之前可能需要先创建一个空的数据库。

解决方法:不要使用mysqldump命令,而是使用mysql命令来导入数据。同时,在导入之前可能需要先创建一个空的数据库。

具体解决方法如下:

1. 打开终端或命令提示符窗口。

2. 输入以下命令,使用mysql命令导入数据:

mysql -u root -p < localhost.sql

3. 如果在导入之前需要创建一个空的数据库,请先使用以下命令创建数据库:

mysql -u root -p -e "CREATE DATABASE 数据库名;"

注意将“数据库名”替换为实际的数据库名称。

通过以上步骤,您将能够成功使用mysql命令导入数据,而不是使用错误的mysqldump命令。同时,如果需要,您也可以先创建一个空的数据库。

0