繁体   English   中英

#1064尝试在线导出本地主机数据库时出现错误消息

[英]#1064 Error Message When trying to export local host database online

嗨,我是一位有抱负的计算机科学家。 我一直在尝试将我的本地主机网站在线上上传将近一天。 到目前为止,这是我所做的:

我在线创建了一个数据库(通过我的在线托管帐户),创建了用户和密码。 我转到本地主机上的PHPmyAdmin,选择了我的数据库,将其导出(.sql文件),编辑了URL(查找并替换)。 我上网进入数据库(在线),然后选择导入数据库。 我选择了导出的数据库文件(本地主机的文件),然后单击“执行”。 我收到以下错误消息:

它告诉我:

1064-您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册,以获取在'CREATE TABLE [IF NOT EXISTS] wp_commentmetameta_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确实具有“导入”选项。

  • 通过单击phpMyAdmin图标打开phpMyAdmin。
  • 在左侧菜单中选择要使用的数据库
  • 点击顶部菜单中的导入
  • 在“要导入的文件”下,单击“浏览”,然后选择以前创建的备份文件(该文件将是.sql .zip或.tar.gz文件)。
  • 点击右下角的执行

成功导入数据库后,您应该在页面顶部看到类似以下消息:导入已成功完成,已执行##查询。

另请参阅:

谈论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表的明确引用。

在我们的查询中:

  • utf8mb4字符集
  • utf8mb4_unicode_ci整理
  • wp_commentmeta表
  • MySQL的4.1.14

也许夸大了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_ciutf8_unicode_ciutf8mb4与数据库UTF8。 希望这对你有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM