mysqldump正在转储不需要的系统表

时间:2017-01-05 14:59:15

标签: mysql

它也倾倒了正确的那些,但它们是一堆不受欢迎的结尾。

转储包括一堆“系统”表,例如:

<md-sidenav-container>
  <md-sidenav #sidenav>
     <h1>Hello</h1>
  </md-sidenav>

  <menu [nav]="sidenav"></menu>
</md-sidenav-container>

我正在使用root用户进行转储,如下所示:

@Input() nav;

openSideNav(){
   this.nav.open();
}

我无法找到任何相关信息,我主要使用| column_stats | | columns_priv | | func | ... "C:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe" -u [user]-p [password] --databases "my-db-name" > dump.sql 作为关键字。

2 个答案:

答案 0 :(得分:2)

最后我意识到这里有什么问题。您的参数-p后跟空格意味着您将通过提示“输入密码:”键入密码,并且您的[密码]将被解释为数据库名称。由于没有像您的密码一样的数据库,所有都被转储。来自文档:

  

- 密码[=密码], - p [密码]

     

连接服务器时使用的密码。如果你使用      短选项表单(-p),你不能在选项和。之间有空格      密码。如果省略以下密码值      命令行上的--password或-p选项,mysqldump会提示输入一个。

所以,你的命令应该是:

  

“C:\ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exe”-u [user] -ppassword“my-db-name”&gt; dump.sql

(请注意,-p和您的密码之间没有空格),

或者像这样:

  

“C:\ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exe”-u [user] -p“my-db-name”&gt; dump.sql

(此处您在按Enter后从键盘输入密码。)

答案 1 :(得分:1)

您提到的表都属于mysql数据库,它是一个系统数据库。在该数据库上使用mysqldump是完全可以接受的,但是如果您稍后转储以恢复数据库,那么该数据库的备份不完整备份可能会导致身份验证/授权/功能问题。

这些表不应出现在常规数据库中。如果它们确实存在,它肯定表明一些先前的错误,你应该简单地删除这些表。

如果您只是想执行该转储并且不想调查根问题,也可以告诉mysqldump忽略存在但您想要从转储文件中排除的表。选项语法为:--ignore-table=db_name.tbl_name。要排除多个表,可以多次重复该参数。