恢复尝试在共享主机中创建数据库的 MySQL 转储

Posted

技术标签:

【中文标题】恢复尝试在共享主机中创建数据库的 MySQL 转储【英文标题】:Restoring a MySQL dump that try to create database in shared host 【发布时间】:2016-04-01 19:22:30 【问题描述】:

我在 Godaddy 有一个托管帐户。每天都会创建自动 mysql 数据库备份。它被命名为database_name.sql.gz

在我的另一台共享主机上,我尝试在 decomrssing 后恢复该转储,即通过 putty 和 SSH 使用以下命令将其设为 database_name.sql

 mysql -u *****_root -p *****_htest < database_name.sql

***** 是我帐户的用户名

我收到以下错误:

ERROR 1044 (42000) at line 22: Access denied for user '*****_root'@'localhost' 到数据库'database_name'

从错误消息看来,转储尝试创建一个名为原始数据库的数据库,但忽略了将其还原到数据库*****_htest。 有没有办法让这个转储文件恢复到指定的数据库而不是创建新的?

【问题讨论】:

你是怎么导出的?我的意思是,应该有一个选项是为您创建数据库或表,还是只转储整个条目。尝试使用phpmyadmin,大多数共享主机都应该有这个工具。 @Tezla 不能使用phpmyadmin。转储文件很大,即超过 100 MB。 严格来说,一些共享主机确实有一个站点备份选项,可以让您上传数据库备份 - 但是,我想知道 sql 文件是否实际上只是 insertcreate 我怀疑那里是别的东西。如果您实际上可以查看 100 MB 的文件内容,那将有助于弄清楚。在不安全的替代方案上,尝试以 root 或任何具有各种访问权限的人(超级用户)身份运行它。 @Tezla 非常感谢我找到了解决方案并将其作为答案。 【参考方案1】:

终于找到了解决办法,进入MySQL控制台,执行如下命令:

# Enter the console
mysql -u *****_root -p

mysql> use *****_htest
mysql> source database_name.sql

就是这样!

【讨论】:

以上是关于恢复尝试在共享主机中创建数据库的 MySQL 转储的主要内容,如果未能解决你的问题,请参考以下文章

从 MySql 导出转储文件

尝试本地 XAMPP MySQL 服务器时,恢复 MySQL .sql 转储不起作用

Drupal 7 从 mysql 数据库恢复不起作用

如何在 gsutil 中创建一个存储桶,用于在 cloudsql 中上传 sql 转储文件。?

从转储文件中恢复 MySql

MySQL:如何在忽略几个数据库的情况下恢复转储