40

我正在尝试从 .sql 文件恢复数据库,我已经在 phpmyadmin 中创建了数据库,并且还使用了我正在恢复到数据库的 .sql 文件中的 create if not exist 命令,并且两个数据库的名称在 phpmyadmin 和 . sql 文件,即“mydatabase”。

这是我用来恢复数据库的命令。

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

当我执行上述命令时,我收到以下错误,我还授予了用户对该数据库的所有权限。

ERROR 1049 (42000): Unknown database 'mydatabasename'

请帮助我如何解决这个问题。谢谢,

4

15 回答 15

33

如果转储文件包含:

CREATE DATABASE mydatabasename;
USE mydatabasename; 

您可以只在 CLI 中使用:

mysql -uroot –pmypassword < mydatabase.sql

有用。

于 2016-03-24T17:02:16.703 回答
5

无论转储文件的名称是什么,重要的是内容。

您需要检查mydatabase.sql并找到这一行:

USE mydatabasename;

这个名字很重要,它是你必须在你的命令中使用的名字:

mysql -uroot -pmypassword mydatabasename<mydatabase.sql;

两种选择:

  1. USE mydatabasename;在您的转储中删除,并继续使用:
    mysql -uroot -pmypassword mydatabase<mydatabase.sql;
  2. 更改本地数据库名称以适合 SQL 转储中的名称,然后使用:
    mysql -uroot -pmypassword mydatabasename<mydatabase.sql;
于 2013-10-30T10:02:48.230 回答
3

打开 sql 文件并注释掉尝试创建现有数据库的行并删除USE mydatabasename并重试。

于 2013-10-30T10:05:31.450 回答
3

您还可以创建一个名为“mydatabasename”的数据库,然后再次尝试恢复它。

使用 MySQL CLI 创建一个新数据库:

mysql -u[username] -p[password]
CREATE DATABASE mydatabasename;

然后尝试恢复您的数据库:

mysql -u[username] -p[password] mydatabase<mydatabase.sql;
于 2016-10-11T08:20:44.697 回答
3

我解决了,因为我有同样的问题,我给你一些线索:

1.- 正如@eggyal 评论

mydatabase != mydatabasename

因此,请检查您的数据库名称

2.- 如果在你的文件中,你想创建数据库,你不能设置你还没有创建的数据库:

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

将其更改为:

mysql -uroot -pmypassword <mydatabase.sql;
于 2017-01-31T02:55:54.773 回答
2

创建错误为未知数据库的数据库,登录到 mysql shell:

sudo mysql -u root -p
create database db_name;

现在尝试使用 .sql 文件恢复数据库,一旦执行命令,-p 标志将询问 sql 用户的密码。

sudo mysql -u root -p db_name < db_name.sql
于 2020-10-19T08:05:08.577 回答
0

我遇到了你的问题。这是如何解决它

  1. 检查您的数据库名称是否正确并存在于 MySQL 中
  2. 检查你的IP和端口是否正确
于 2021-05-26T10:18:48.187 回答
0

如果最初键入的数据库名称不正确。然后进行了 Php artisan 迁移。然后您将收到一条错误消息。稍后即使修复了数据库的名称,您也需要关闭服务器并重新启动服务器

于 2019-12-09T17:19:15.407 回答
0

它通过创建数据库而不是键入命令来工作: C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p -D cricket < C:\Users\habib_s9ayvfl\Desktop\sqlfile.sql

于 2021-08-12T10:14:28.880 回答
0

我在其中一个 .sql 文件中找到了这些行

“要与不使用端口的管理器连接3306,您必须指定端口号:

$mysqli = new mysqli('127.0.0.0.1','user','password','database','3307');

或者,在程序方面:

$mysqli = mysqli_connect('127.0.0.0.1','user','password','database','3307');"

它为我解决了错误。所以我建议在连接服务器时必须使用端口号来解决错误1049(未知数据库)。

于 2020-02-20T11:30:29.230 回答
0

我有同样的问题,我在命令行上运行这个命令,就像你添加了';' 在最后。删除它解决了这个问题。而不是这个

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

尝试这个

mysql -uroot -pmypassword mydatabase<mydatabase.sql
于 2020-01-23T15:42:17.950 回答
0

La Chi 的回答对我有用。

您可以在本页zessx answer的评论中查看他/她的答案。但是,如果您也像这样调整他/她的答案,我最初会遇到问题mysql -h localhost -u root -p -D mydatabase < mydatabase.sql

另外,我建议mydatabase.sql在您的计算机中包含它的直接位置,例如"C:\Users\username\desktop".

谢谢你。

于 2017-08-01T19:08:39.633 回答
0
mysql -uroot -psecret mysql < mydatabase.sql
于 2020-05-29T14:40:41.167 回答
0

创建数据库:

创建数据库 mydatabasename; 使用我的数据库名称;

使用这个:mysql -u root -p 'mydatabasename'< '/tmp/db_dump.sql'

于 2022-02-11T10:33:49.113 回答
-3

当你从工作台或其他方法导入数据库时​​,应该给你的转储同名以避免这种错误

于 2020-07-24T11:56:11.017 回答