错误1049(42000):未知数据库'mydatabasename'

时间:2013-10-30 09:44:04

标签: mysql

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

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

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

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

ERROR 1049 (42000): Unknown database 'mydatabasename'

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

13 个答案:

答案 0 :(得分:17)

如果转储文件包含:

@Injectable()
export class MetaManager{
  constructor(@Inject(Handler) private handlers:Handler[]){
    console.log(handlers);
  }
}

您可以在CLI中使用:

CREATE DATABASE mydatabasename;
USE mydatabasename; 

有效。

答案 1 :(得分:3)

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

您需要检查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;

答案 2 :(得分:3)

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

答案 3 :(得分:1)

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

1.-作为@eggyal评论

mydatabase != mydatabasename

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

2.-如果在您的文件中,您想要创建数据库,则无法设置尚未创建的数据库:

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

将其更改为:

mysql -uroot -pmypassword <mydatabase.sql;

答案 4 :(得分:0)

您还可以创建名为&#39; mydatabasename&#39;的数据库。然后再尝试恢复它。

使用MySQL CLI创建新数据库:

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

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

mysql -u[username] -p[password] mydatabase<mydatabase.sql;

答案 5 :(得分:0)

La Chi的回答对我有用。

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

另外,我建议您在mydatabase.sql部分中将其直接放置在计算机中,例如"C:\Users\username\desktop"

谢谢。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

我遇到了同样的问题,我在命令行上运行了此命令,就像您添加了';'一样在最后。删除它解决了这个问题。 代替这个

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

尝试

mysql -uroot -pmypassword mydatabase<mydatabase.sql

答案 8 :(得分: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(未知数据库)。

答案 9 :(得分:0)

mysql -uroot -psecret mysql < mydatabase.sql

答案 10 :(得分:0)

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

sudo mysql -u root -p
create database db_name;

现在尝试使用.sql文件还原数据库,一旦执行命令,-p标志将要求输入sql用户的密码。

sudo mysql -u root -p db_name < db_name.sql

答案 11 :(得分:0)

我遇到了你的问题。这是怎么解决的

  1. 检查您的数据库名称是否正确并存在于 MySQL 中
  2. 检查您的 IP 和端口是否正确

答案 12 :(得分:-2)

从工作台或其他方法导入数据库时​​,应使用与转储相同的名称,以避免此类错误