[英]#1064 Error Message When trying to export local host database online
嗨,我是一位有抱负的计算机科学家。 我一直在尝试将我的本地主机网站在线上上传将近一天。 到目前为止,这是我所做的:
我在线创建了一个数据库(通过我的在线托管帐户),创建了用户和密码。 我转到本地主机上的PHPmyAdmin,选择了我的数据库,将其导出(.sql文件),编辑了URL(查找并替换)。 我上网进入数据库(在线),然后选择导入数据库。 我选择了导出的数据库文件(本地主机的文件),然后单击“执行”。 我收到以下错误消息:
它告诉我:
1064-您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册,以获取在'CREATE TABLE [IF NOT EXISTS]
wp_commentmeta
(meta_id
bigint(20)u'的第1行附近使用的正确语法
CREATE TABLE IF NOT EXISTS `wp_commentmeta` (
`meta_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT '0',
`meta_key` VARCHAR( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,
`meta_value` LONGTEXT COLLATE utf8mb4_unicode_ci,
PRIMARY KEY ( `meta_id` ) ,
KEY `comment_id` ( `comment_id` ) ,
KEY `meta_key` ( `meta_key` ( 191 ) )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci AUTO_INCREMENT =6;
希望这能改善我的问题?
我非常感谢该平台上每个贡献者之前所做的工作。 在Stack Overflow与大家一起,我知道了问题的本质,但是我没有找到直接适用于此问题的解决方案。 我不知道代码在哪里不正确。 我需要一个快速解决方案,即使从昨天起人们必须在该站点(WP站点)上注册。 谢谢大家。
您(仍然)收到该错误的唯一方法是,因为您极有可能通过PHP脚本使用代码,而不是执行代码/将这些代码插入phpmyadmin中。
由于您确实将代码标记为PHP,所以这是我唯一能得出的结论,因为在phpmyadmin中使用了代码,因此成功创建了它。
如我在评论中所述,当然要减去括号。
卸下此处的支架[ IF NOT EXISTS ]
。
您一定已经从他们的站点上摘取了MySQL示例,并使用了它们。
这些不是要使用的,而是可以选择的。
另外,如果从PHP脚本执行,则可能是引号问题,并且使用了错误的引号。
如果您正在尝试或希望通过PHP脚本创建表,则可以使用以下示例:
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
但是,phpmyadmin确实具有“导入”选项。
成功导入数据库后,您应该在页面顶部看到类似以下消息:导入已成功完成,已执行##查询。
另请参阅:
谈论WordPress。
和
另一个可能的原因可能是引入了某种类型的unicode(隐藏)字符和/或文件编码问题。
TBH; 在这一点上,我没有主意。
编辑:
作为选择,如果仍然给您带来问题,则可以使用以下命令作为PHP脚本运行:
旁注:这是经过预先测试的。 用您自己的登录凭据替换xxx
。
<?php
$DB_HOST = 'xxx';
$DB_USER = 'xxx';
$DB_PASS = 'xxx';
$DB_NAME = 'xxx';
$Link = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($Link->connect_errno > 0) {
die('Connection failed [' . $Link->connect_error . ']');
}
$sql = "CREATE TABLE `wp_commentmeta` (
`meta_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT '0',
`meta_key` VARCHAR( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,
`meta_value` LONGTEXT COLLATE utf8mb4_unicode_ci,
PRIMARY KEY ( `meta_id` ) ,
KEY `comment_id` ( `comment_id` ) ,
KEY `meta_key` ( `meta_key` ( 191 ) )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci AUTO_INCREMENT = 6
";
if ($Link->query($sql) === TRUE) {
echo "Table created successfully";
} else {
echo "Error creating table: " . $Link->error;
}
重要提示:复制此精确代码,并将其粘贴到phpmyadmin中的“ SQL”选项中,而不是 “ IMPORT”中。
CREATE TABLE IF NOT EXISTS `wp_commentmeta` (
`meta_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT '0',
`meta_key` VARCHAR( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,
`meta_value` LONGTEXT COLLATE utf8mb4_unicode_ci,
PRIMARY KEY ( `meta_id` ) ,
KEY `comment_id` ( `comment_id` ) ,
KEY `meta_key` ( `meta_key` ( 191 ) )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci AUTO_INCREMENT =6;
然后点击“开始”。 这就是我最初在phpmyadmin中测试您的代码的方式。
您确定您的MySQL版本是“ 4.1.14”吗? 真的很旧
如果是,则问题是mySQL版本。
utf8mb4编码是在MySQL 5.5.3(于2010年初发布)中引入的。
还请注意 , 官方的WordPress文档说:
utf8mb4升级
在WordPress 4.2中,我们将在可能的情况下将表升级到utf8mb4。 只有满足以下条件,您的网站才会升级:
- 您当前正在使用utf8字符集。
- 您的MySQL服务器版本为5.5.3或更高版本(包括MariaDB的所有10.x版本)。
- 您的MySQL客户端库为5.5.3或更高版本。 如果您使用的是mysqlnd,请安装5.0.9或更高版本。
另外,在文档中有对wp_commentmeta
表的明确引用。
在我们的查询中:
也许夸大了MySQL可以解决您的问题。
当我联系房东时,他们帮助我解决了问题。 我收到此消息:
我可以在文件“ dbxxx.sql”中看到命令“使用dbxx;”。 丢失,这是原因,您在尝试将SQL文件导入数据库时收到该错误。
我的网站现已启动并正在运行。
将数据库上传到服务器时,我遇到了同样的问题。
错误的SQL查询:
#
# Table structure of table `wp_commentmeta`
#
CREATE TABLE `wp_commentmeta` (
`meta_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT '0',
`meta_key` VARCHAR( 255 ) COLLATE utf8_unicode_520_ci DEFAULT NULL ,
`meta_value` LONGTEXT COLLATE utf8_unicode_520_ci,
PRIMARY KEY ( `meta_id` ) ,
KEY `comment_id` ( `comment_id` ) ,
KEY `meta_key` ( `meta_key` ( 191 ) )
) ENGINE = INNODB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_520_ci;
我只是用数据库中的utf8_unicode_ci
替换所有utf8_unicode_520_ci
。 然后,我可以上传数据库。 这对我有用。 您可以尝试更换所有utf8mb4_unicode_ci
与utf8_unicode_ci
和utf8mb4
与数据库UTF8。 希望这对你有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.