使用 mamp、phpMyAdmin 导入 mysql 数据库

Posted

技术标签:

【中文标题】使用 mamp、phpMyAdmin 导入 mysql 数据库【英文标题】:importing mysql database using mamp, phpMyAdmin 【发布时间】:2011-12-20 13:58:39 【问题描述】:

我正在尝试将 MyIsam 数据库从远程服务器复制到本地计算机以进行测试。我在远程服务器上使用 phpMyAdmin。我选择数据库,然后导出。当我尝试导入(使用 mamp、phMyAdmin)时,我收到以下错误消息 错误 SQL查询:

CREATE TABLE IF NOT EXISTS `assignments` (
`uid` int( 11 ) default NULL ,
`rid` int( 11 ) default NULL ,
`semester` varchar( 255 ) default NULL ,
`year` int( 11 ) default NULL
) TYPE = MYISAM ;

mysql said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax
to use near 'TYPE=MyISAM' at line 6

请帮忙!

谢谢

【问题讨论】:

1064 error in CREATE TABLE ... TYPE=MYISAM的可能重复 【参考方案1】:

尝试 Reza (Type=InnoDB) 提出的技巧,但我在本地机器上使用 MAMP,它可以支持 InnoDB/MyISAM……你使用哪个版本的 MAMP? (我用的是免费的)

【讨论】:

只需删除 'TYPE = MYISAM ;'部分(但留下结束括号))。在 phpMyAdmin 中选择您的数据库,单击 SQL,然后复制粘贴代码。这应该创建具有默认类型的表,通常是 MyISAM。 尝试从 .sql eport 文件中删除所有 Type=myisam 调用,但现在由于另一个基于语法的错误,导入失败。这可能与我尝试从 mySql 服务器版本 5.0.77 导出到 mySql 服务器版本 5.5.9 的事实有关吗? 我会假设较新的 mysql 版本是向后兼容的(至少到最后一个主要版本)。去掉myisam后,你改成innodb了吗?从您之前的评论来看,除非您覆盖它,否则它似乎默认为 myisam。新的错误信息是什么? 好的,我得到了正确答案:尝试将 'TYPE = MYISAM' 替换为 'ENGINE = MISAM'。这是正确的语法,应该这样做:) 你摇滚!将 TYPE=MYISAM 更改为 ENGINE=MYISAM 完全有效。我想知道为什么我的转储文件有 TYPE 而不是 ENGINE【参考方案2】:

也许您的本地数据库不支持 MyISAM 类型?必须是 MyISAM 吗?您可以尝试在 sql 转储文本文件中将其更改为 'TYPE=InnoDB'

【讨论】:

我要导入的数据库是 myISAM,我不确定这是否意味着我要导入的数据库也必须是 myISAM。我确实更改了 my.cnf,“default-storage-engine = MyISAM”,并从终端验证它默认为 myISAM。 目的地也不需要是 MyISAM,因为我之前已经将其他 isam dbs 导入到 inno 中。如果在 db 转储文件中,如果您不关心 db 类型,则在 create table 语句的末尾添加 type=InnoDB 以解决此问题 尝试将所有 type=MyISAM 改为 innoDB ,还是不行

以上是关于使用 mamp、phpMyAdmin 导入 mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章

markdown 在OSX上使用MAMP和phpMyAdmin导入大型数据库

MAMP:将大型数据库导入 phpMyAdmin

MAMP phpMyAdmin 数据库转储导入

mamp phpmyadmin 错误脚本导入数据库

MAMP phpmyadmin 上的脚本超时传递错误

MAMP的数据库