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

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

阅读 2.5k
2 个回答

可以通过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`;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题