我正在尝试从.sql文件恢复数据库,我已经在phpmyadmin中创建了数据库,并且还使用了.sql文件中的create if not exist命令,我将恢复到数据库并且数据库的两个名称都相同phpmyadmin和.sql文件,它是“mydatabase”。
这是我用来恢复数据库的命令。
mysql -uroot -pmypassword mydatabase<mydatabase.sql;
当我执行上述命令时,我收到以下错误,我还在此数据库上向用户授予了所有权限。
ERROR 1049 (42000): Unknown database 'mydatabasename'
请帮助我如何解决这个问题。 谢谢,
答案 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;
有两种选择:
USE mydatabasename;
,并继续使用:mysql -uroot -pmypassword mydatabase<mydatabase.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)
我遇到了你的问题。这是怎么解决的
答案 12 :(得分:-2)
从工作台或其他方法导入数据库时,应使用与转储相同的名称,以避免此类错误