如何在navicat的“转储SQL文件”中生成create dabase的SQL语句?

作者站长头像
站长
· 阅读数 9

在navicat中,我知道可以在db名上右键,选择“转储SQL文件”,但是它只能备份表,无法生成创建db的sql。这就导致还原数据库的时候必须手动创建db,再运行备份的sql。但是创建db的时候很容易就会忘记db的名字,而且也很麻烦。我相信navicat是完全有能力生成create database的SQL语句的,那为什么在使用“转储SQL文件”时只能生成表和数据的SQL呢?而且自己create database还可能遇到charset和collate和原db不同的问题。所以,有什么好的办法可以直接把整个mysql完整的备份出来吗?谢谢!

回复
1个回答
avatar
test
2024-07-01

可以通过mysqldump解决

mysqldump -utest -p -B test > test.sql

-B参数为生成创建数据库语句,效果如下

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;

USE `test`;
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容