草庐IT

MySQL 转储 CronJob

我正在尝试创建一个每天备份我的MySQL从服务器的cron。backup.sh内容:#!/bin/bash##Backupmysqlfromslave##sudomysql-uroot-p'xxxxx'-e'STOPSLAVESQL_THREAD;'sudomysqldump-uroot-p'xxxxx'ng_player|gzip>database_`date+\%Y-\%m-\%d`.sql.gzsudomysqladmin-uroot-p'xxxxx'start-slave我通过sudochmod+x/home/dev/backup.sh使它可执行并通过以下方式进入crontab

mysql - 恢复sql转储文件时获取errno 150

我使用MySQLDumpDistrib5.1.45来备份我的数据库。它生成了一个文件如下:--MySQLdump10.13Distrib5.1.45,forWin32(ia32)----Host:localhostDatabase:SG----------------------------------------------------------Serverversion5.5.16/*!40101SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT*/;/*!40101SET@OLD_CHARACTER_SET_RESULTS=@

mysql - 如何加快将 .sql 转储文件导入 AWS RDS 实例的速度?

我正在尝试将55兆的.sql文件导入AWSRDS实例。转储文件是使用此命令生成的:mysqldump-uroot-ppassworddbname>dbname.sql我正在使用此命令运行导入:mysql-uroot-ppassword--host=x.rds.amazonaws.comdbname导入运行了大约20分钟,所以我决定中止,以为有什么东西挂了。它在完成20%的行上中止,因此看起来导入工作正常,但导入55兆SQL需要大约1小时40分钟。这正常吗?如果没有,我怎样才能正确地做到这一点? 最佳答案 事实证明,根据这个进行转储使

mysql - 如何在不锁定的情况下转储 MySQL 中的单个表?

当我运行以下命令时,输出仅包含“mytable”的创建语法,但没有任何数据:mysqldump--single-transaction-umylogin-pmydatabasemytable>dump.sql如果我删除--single-transaction,我会收到一个错误,因为我无法锁定表。如果我删除“mytable”(并执行数据库),看起来它正在创建INSERT语句,但整个数据库非常庞大。有没有一种方法可以在不锁定表的情况下转储表(架构和数据)?(我也试过INTOOUTFILE,但也无法访问它。) 最佳答案 答案可能取决于您为

mysql - 将 mysql 表转储到 CSV(stdout),然后将输出隧道传输到另一台服务器

我正在尝试将数据库表移动到另一台服务器;复杂的是当前运行该表的机器几乎没有剩余空间;所以我正在寻找可以在网络上运行的解决方案。我已经尝试过从src机器上使用mysqldumping数据库并将其通过管道传输到目标的mysql中;但是我的数据库有4800万行,即使关闭auto_commit并将trx_commitcmd设置为2;我的狗慢了。mysqldump-uuser-ppass--optdbnamedbtable|mysql-hremove.server-uuser-passdbname然后我尝试mysqldump一次百万行;将它们scp到目标机器并执行mysql我做了一些阅读,mys

mysql - Django 1.1 中大型数据库的 manage.py 数据转储(创建测试数据库)

为了能够进行一些像样的单元测试,我想创建一个测试数据库。阅读Django文档后,我得出结论,执行此操作的最佳方法是使用固定装置从实际数据库创建测试数据库。要创建这样的夹具,一个是运行:./manage.pydumpdataappname--indent2转储后,我想编辑文件,并选择我真正要使用的数据。然而,倾倒它几乎让我的电脑崩溃(我认为脚本开始破坏)。还有,好像是先把所有的数据都放到内存里,然后一次性全部打印出来。我使用的数据库是MySQL有没有一种方法可以在不让我的PC崩溃的情况下以可用作固定装置的格式从数据库中取出数据?(我正在考虑的替代方案是为具有大量行的对象重新定义默认数据管

mysql - 在 MySQL 服务器从 5.1.51 迁移到 5.5.10 后恢复转储文件引发错误 1064

在运行MySQL服务器5.1.51(均为64位)的Windows7计算机上,在迁移到5.5.10之前,我使用MySQLAdministrator备份了整个数据库。安装5.5.10后,我尝试恢复转储文件,但它抛出一个错误:ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'TYPE=MyISAMDEFAULTCHARSETlatin1COLLATElatin1_german1_ci;SEL

mysql - View 未被 mysqldump 转储

我希望mysqldump转储View。我正在从PHP运行以下mysqldump命令:mysqldump-h127.0.0.1-uroot-proot--databasemain-R--extended-insert=FALSE--complete-insert=TRUE它似乎并没有转储View(我使用CREATEVIEW创建的)。我怎样才能让它转储View和表? 最佳答案 根据this您可能会遇到View问题,因为您没有对数据库的显式SHOWVIEW权限。“该问题的解决方法是管理员手动将SHOWVIEW权限授予被授予CREATEVI

mysql - 从转储文件恢复数据库时如何记录sql错误

预先为任何重复道歉,但我发誓我已经研究过(并在此过程中学到了很多东西)。环境是MySQL5.5,在Windows7上使用MYISAM表引擎。工作是恢复从MySQL4.0转储的数据库。我从命令行执行此操作(我尝试使用Oracle的MySQLWorkbench导入实用程序,但如果遇到错误,它将失败)。恢复完成,但我知道会抛出错误。我想捕获它们,以便确保恢复无误地完成。General_log似乎没有捕获任何内容(是的-它已打开)。另一个日志文件(local_host_name.log)似乎根本没有捕获sql语句级别的错误。从命令行恢复时是否有捕获错误的方法?有没有一种方法可以使用将错误写入日

java - 带有 java Runtime.getRuntime().exec(command) 的 mysqldump 命令不生成转储

我试过以下代码片段:Processp;Stringcommand="mysqldump-u'scmuser'-p'scm$123'--routinesdb_name>/home/ubuntu/wh_demo_db_reset.sql";p=Runtime.getRuntime().exec(command);转储文件没有生成,也没有抛出任何错误。我无法预测确切的问题请帮助我。提前致谢。 最佳答案 元字符“>”由shell实现;使用Runtime.exec()运行程序时不涉及shell,因此mysqldump的最后两个参数是垃圾。使用