我有一个我的数据库的MySQL转储.在其中,有DEFINER条款,看起来像,
"DEFINER=`root`@`localhost`"
Run Code Online (Sandbox Code Playgroud)
也就是说,这些DEFINER条款在我的CREATE VIEW和CREATE PROCEDURE语句中.有没有办法从我的转储文件中删除这些DEFINER子句?
我正在尝试创建一个简单的结构,只转储我的数据库.使用mysqldump给我一个结果,如:
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `foo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么,我似乎都无法摆脱那些评论.
我目前正在使用: mysqldump -p -d --add-drop-table --skip-tz-utc --skip-set-charset -h 127.0.0.1 -u foo bar --result-file=dumpfile.sql
编辑:但我希望保留其他评论,例如-- MySQL dump 10.13 Distrib 5.1.41, for Win32 (ia32)
我正在亚马逊RDS上运行一个mysql 5.6服务器并设置一个我用来使用mysqldump创建备份的只读副本.
我尝试使用"--all-databases"选项,但是当我尝试导入mysqldump创建的SQL时,我最终得到了mysql命令客户端的错误:
ERROR 1465 "Triggers can not be created on system tables"
Run Code Online (Sandbox Code Playgroud)
我使用了"--all-databases",因为我基本上想要恢复RDS中的所有内容,就像以前发生崩溃一样.
也许这是错的,我应该只选择我的模式(加上mysql.users表)?但是什么是"--all-databases"首先,如果它永远不会工作?或者我使用它错了?