我正在使用mysqldump在特定计算机上的帐户之间复制数据库.一切都很有效,除非我们到达定义的视图.因为转储包含如下所示的行...
/*!50013 DEFINER=`user_a`@`localhost` SQL SECURITY DEFINER */
Run Code Online (Sandbox Code Playgroud)
...当在user_b上将转储加载到mysql时,我们收到一个错误:
ERROR 1227 (42000) at line 657: Access denied; you need the SUPER privilege for this operation
Run Code Online (Sandbox Code Playgroud)
不用说,我对这个mysql实例没有SUPER特权.有没有办法说服mysqldump以用户无关的方式转储视图?关于这一点,我在手册中找不到任何内容.我是否必须实际解析dumpfile以替换用户名?或者我错过了什么?
我想从名为table1的mysql表转储id = 5的单个记录.
什么是mysql查询相同?
我想我们可以使用,mysqldump但我已经使用它与表的完整记录.但如何使用单一记录?
我正在尝试将一个数据库的所有mysql数据转储到一个文件中.也就是说,我不想在这个文件中包含表结构(还有另一个文件,其中包含表的结构).
是否可以严格提取数据而不是表格结构?
我现在在做什么......
# Extracts the database structure
mysqldump -d -hlocalhost -uusername -ppassword database -r database.sql
# Extracts each table and their data individually
mysqldump -d -hlocalhost -uusername -ppassword database --tab .
Run Code Online (Sandbox Code Playgroud)
第一个命令将使用数据库中所有实体的结构吐出.sql文件,而第二个命令会自动生成带有结构和实体的.sql和.txt文件.
我需要的是整个数据库的一个副本,它以相同的方式完成.
谢谢
可能重复:
加速mysql转储和导入
mysqldump 速度相当快,但中型数据库(20-30兆)的转储需要几分钟才能加载 mysql my_database < my_dump_file.sql
我可以调整一些mysql设置以加快负载吗?有没有更好的方法来加载保存的数据?
我已经尝试将mysqlimport实用程序与基于CSV的转储一起使用.这些负载略微 - 但不明显 - 加快.我很想复制原始数据库文件,但这似乎是一个坏主意.
我该如何正确地做到这一点.我正在尝试将mysqldump生成的sql文件命名为当前日期和时间.我已经在这个网站上进行了一些研究,并在这里找到了一个代码:如何在Windows命令行上以适当的格式获取当前日期时间,以便在文件名中使用?
试图将它与我当前的代码混在一起,我想出了这个.该文件被命名为当前日期和时间,但它只有一个1kb文件,并且不会生成.sql文件.它应该是一个7 kb的sql文件.
@For /f "tokens=2-4 delims=/ " %%a in ('date /t') do @(set mydate=%%c-%%a-%%b)
@For /f "tokens=1-2 delims=/:" %%a in ('time /t') do @(set mytime=%%a%%b)
@echo mydate= %mydate%
@echo mytime= %mytime%
mysqldump -u root -p --add-drop-table --create-options --password= onstor >c:\%mydate%_%mytime%.sql
Run Code Online (Sandbox Code Playgroud)
更新 我认为mysqldump命令没有问题,因为当我这样做时它运行良好.下面的代码只使用日期作为其文件名.
@For /F "tokens=2,3,4 delims=/ " %%A in ('Date /t') do @(
Set Month=%%A
Set Day=%%B
Set Year=%%C
)
@echo DAY = %Day%
@echo Month = %Month%
@echo Year = %Year%
mysqldump -u root --add-drop-table --create-options --password= …Run Code Online (Sandbox Code Playgroud) 尝试创建批处理(cmd)文件,以将每个数据库备份到单独的文件中.经常创建/删除数据库,因此批处理文件需要在每次运行时获取当前的数据库名称并备份它们中的每一个.
我希望它是这样的:
mysql -e "show databases" -u root --password=1234
mysqldump %dbname% -u root --password=1234 > S:\Backup\MySQL\%dbname%.sql
Run Code Online (Sandbox Code Playgroud)
是否可以在批处理文件中执行?
请帮忙.谢谢.
我创建了一个名为realcardiodb的RDS实例(引擎是mysql),我从我的localhost导出了我的数据库.文件在本地保存,名为localhostrealcardio.sql
大多数研究表示使用mysqldump将数据从本地系统导入到Web服务器,但我的系统甚至不识别mysqldump.
C:\xampp\mysql>mysqldump
'mysqldump' is not recognized as an internal or external command, operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
如果我使用mysqldump,如何解决此错误?(我的系统上肯定有mysql安装)
我应该使用更好的实用工具吗?
任何帮助都表示赞赏,特别是如果您有将mysql导入aws rds的经验.
谢谢!DK
更新7/31/2012 所以我解决了错误.mysqldump位于bin目录C:\ xampp\mysql\bin> mysqldump AWS提供了将本地数据库上载到RDS的下列说明:
mysqldump acme | mysql --host=hostname --user=username --password acme
Run Code Online (Sandbox Code Playgroud)
有人可以为我打破这个吗?
1)第一个'acme'(在mysqldump命令之后)是我本地数据库的名称还是我在本地保存的导出的sql文件?
2)主机名是IP地址,公共DNS,RDS端点还是两者都不是?
3)我假设的用户名和密码是RDS凭证,第二个acme是我在RDS中创建的数据库的名称.
谢谢!
当我尝试运行时,mysqldump -u dump -p myschema > dumpfile.sql我收到此错误消息:
mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'gtid\_mode'': SELECT command denied to user 'dump'@'localhost' for table 'session_variables' (1142)
我找到了一些关于添加--set-gtid-purged=OFF类似错误的内容.但我没有mysqldump在较旧的MySQL数据库上运行MySQL 5.6版本.但是,当我尝试它时,我得到一个新的,但类似的错误:
mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'ndbinfo\_version'': SELECT command denied to user 'dump'@'localhost' for table 'session_variables' (1142)
我不确定为什么用户需要访问session_variables表,我认为是这样information_schema.SESSION_VARIABLES,因为这篇SO帖子说以下权限就足够了.
dump @ localhost的授权
GRANT USAGE ON *.* TO 'dump'@'localhost'
GRANT SELECT, LOCK TABLES ON mysql.* TO 'dump'@'localhost'
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, …Run Code Online (Sandbox Code Playgroud) Stackoverflow和MySQL-via-command-line n00b在这里,请温柔!我一直在寻找我的问题的答案,但只能通过GitHub找到处理协作的GitHubbing MySQL转储(如:数据转储)或MySQL"版本控制"的主题,这些都没有告诉我我想知道的内容:
如何在GitHub上包含有关PHP项目的表的MySQL数据库模式/信息?
我想在GitHub上共享一个PHP项目,它依赖于某些表存在MySQL数据库.如果有人想复制/使用这个项目,他们需要有这些特定的表来使脚本工作(所有表只有一个在开头是空的,只有用户通过脚本随时间填充;非空表从一开始就包含三个值).如何解决这个问题,通常的做法是什么?
如果解决方案#1是要走的路,我是否会包含有关如何使用这种.sql文件的进一步说明?
很抱歉,如果我的问题听起来很愚蠢,但正如我上面所说的那样,我自己是使用命令行进行MySQL相关事情的新手,直到昨天才使用phpMyAdmin(当我用mysqldump创建我的第一个转储文件时 - 是的!) .
我正在尝试在AWS外部设置副本服务器,并且主服务器正在AWS RDS上运行.而且我不想让我的主人停机.所以我设置了我的从节点,现在我想备份我在AWS的当前数据库.
mysqldump -h RDS ENDPOINT -u root -p --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 --all-databases > /root/dump.sql
我在我的VM上测试了它并且工作正常但是当它与RDS捆绑时它给了我错误
mysqldump: Couldn't execute 'FLUSH TABLES WITH READ LOCK': Access denied for user 'root'@'%' (using password: YES) (1045)
是因为我没有超级用户权限或者我如何解决这个问题?请有人建议我.