我使用phpMyAdmin的导出功能备份了我的joomla MySQL数据库 当我尝试导入这个备份文件时,它会给我带来很多错误,例如"你的SQL语法有错误......"即使SQL看起来非常正确。
这是备份的一小部分,甚至不起作用:
CREATE TABLE `jos_assets` (
`id` int(10) UNSIGNED NOT NULL COMMENT 'Primary Key',
`parent_id` int(11) NOT NULL DEFAULT '0'COMMENT AS `Nested set parent.`,
`lft` int(11) NOT NULL DEFAULT '0'COMMENT AS `Nested set lft.`,
`rgt` int(11) NOT NULL DEFAULT '0'COMMENT AS `Nested set rgt.`,
`level` int(10) UNSIGNED NOT NULL COMMENT 'The cached level in the nested tree.',
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The unique name for the asset.\n',
`title` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The descriptive title for the asset.',
`rules` varchar(5120) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'JSON encoded access control.'
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
当我运行此命令时,我收到以下错误消息:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS `Nested set parent.`,
`lft` int(11) NOT NULL DEFAULT '0'COMMENT AS `Nested ' at line 3
有人可以向我解释这里有什么问题吗?这段代码是由phpMyAdmin自动生成的,对我来说它看起来像是有效的SQL!
我正在使用:
phpMyAdmin版本4.5.5
PHP版本5.6.14
服务器版本10.0.23-MariaDB-0 + deb8u1
Joomla版本3.5.0
答案 0 :(得分:2)
好的,我自己发现了问题:
似乎是
行COMMENT AS `Nested set parent.`,
没有有效的SQL。正确的是
COMMENT 'Nested set parent.',
就像你可以在其他方面看到的那样 我不知道为什么phpMyAdmin使用无效的SQL创建一个MySQL Dump,但这导致了这个问题。