恢复尝试在共享主机中创建数据库的 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 文件是否实际上只是insert
和 create
我怀疑那里是别的东西。如果您实际上可以查看 100 MB 的文件内容,那将有助于弄清楚。在不安全的替代方案上,尝试以 root 或任何具有各种访问权限的人(超级用户)身份运行它。
@Tezla 非常感谢我找到了解决方案并将其作为答案。
【参考方案1】:
终于找到了解决办法,进入MySQL控制台,执行如下命令:
# Enter the console
mysql -u *****_root -p
mysql> use *****_htest
mysql> source database_name.sql
就是这样!
【讨论】:
以上是关于恢复尝试在共享主机中创建数据库的 MySQL 转储的主要内容,如果未能解决你的问题,请参考以下文章
尝试本地 XAMPP MySQL 服务器时,恢复 MySQL .sql 转储不起作用