mysql 8.0 dump命令导入为什么无效?

mysql8.0 的导入命令mysqldump为什么无效?

命令为mysqldump -uroot -p123456 -h127.0.0.1 -P8082 --databases test < /erp/sql/test.sql 且使用mysql workbench 导入没有问题。运行环境为docker

首先,打开mysql workbench,新建 create schema,一切默认,名字选择test。然后create table 名字test。新建字段id,name(varchar),并插入两行数据(1,2)(2,3)。使用dump命令导出,没问题。
然后打开test.sql,把 第一行修改成 (1,'2111') 使用一开始展示的命令,导入。控制台显示

LOCK TABLES `test` WRITE;
/*!40000 ALTER TABLE `test` DISABLE KEYS */;
INSERT INTO `test` VALUES (1,'2'),(2,'3');
/*!40000 ALTER TABLE `test` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2024-01-16  3:29:26

第三行的value还是当前数据库原数据。文件也保存过了,方向符号没有问题,导出是>,导入是<。毕竟导出覆盖很正常。到底是哪里有问题?

阅读 1.5k
avatarAI BotBETA

你遇到的问题似乎是由于MySQL在导入数据时使用的是你导出时的SQL版本,而不是你当前的MySQL 8.0的版本。在你的情况下,你使用的是mysqldump命令行工具,该工具在导出时使用的SQL语法可能与你导入时的MySQL版本不完全兼容。

你的mysqldump命令看起来是正确的,但是在导入时,MySQL可能无法解析某些在更高版本的MySQL中引入的特定语法。

一种可能的解决方案是尝试使用更高版本的MySQL来执行导入操作,或者使用mysqlimport工具来导入数据。mysqlimport工具通常可以处理不同版本的MySQL之间的不兼容性。

此外,请确保你的MySQL服务器配置正确,并且具有足够的权限来执行导入操作。

如果问题仍然存在,你可能需要检查你的MySQL服务器日志以获取更多关于问题的详细信息。日志文件通常可以提供有关为什么导入操作失败的更多信息。

最后,请确保你的MySQL服务器正在运行,并且可以通过你提供的IP地址和端口访问。如果服务器没有运行或者无法访问,那么导入操作将无法完成。

1 个回答

你要导入还是导出

  • 导出 : mysqldump
  • 导入 : mysql
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题