Articles of mysqldump

如何将多行linux命令转换为一行命令

有人可以请解释我如何使用“>”和“|” 在Linux命令,并将这三行转换成一行代码? mysqldump –user=*** –password=*** $db –single-transaction -R > ${db}-$(date +%m-%d-%y).sql tar -cf ${db}-$(date +%m-%d-%y).sql.tar ${db}-$(date +%m-%d-%y).sql gzip ${db}-$(date +%m-%d-%y).sql.tar rm ${db}-$(date +%m-%d-%y).sql (after conversion I guess this line will be useless)

Mysqldump无法执行显示字段

我想创build一个MySQL转储文件,但我有重大问题: 首先我试了一下: mysqldump –user=root –password=**** –host=localhost system_db > /var/www/system_db/site/resources/backup/file.sql 在这里我得到了这个消息: mysqldump: Got error: 1449: The user specified as a definer ('root'@'%') does not exist when using LOCK TABLES 然后我试图更新用户: UPDATE `mysql`.`proc` p SET definer = 'root@localhost' WHERE definer='root@%' 再次运行声明,但没有运气。 然后我试着: mysqldump –single-transaction -u root -p system_*** > db.sql 这工作,但现在我得到以下错误: mysqldump: Couldn't execute 'SHOW FIELDS FROM […]

Shell脚本导入mysql转储文件

我是新来的MySQL。 我的要求是创build一个shell脚本来将一个sql转储文件导入到linux中的mysql,并且这个脚本应该被java程序调用,以便恢复点击button。 请在这方面给我build议。 问候, Chandu。

在'Ctrl-C'第1行恢复MysqlDump的语法错误

我正在使用Linux,我已经尝试了两个 mysql -u root -pabc123 < ~/Desktop/restore.sql 并以root身份login到mysql \. ~/Desktop/restore.sql 我不断收到错误You have an error in your SQl syntax; check the manual that corresponds to your MYSQL server version for the right syntan to use near 'Ctrl-C' at line 1 You have an error in your SQl syntax; check the manual that corresponds to your MYSQL […]

MySQL从远程转储到tar.gz,无需shell访问

我试图从MySQL到我的本地客户端转储。 这是我现在有: mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db | gunzip -9 > $FILE 我想要的是.tar.gz而不是gunzip存档。 我有本地客户端的shell访问,但不是在服务器上。 所以,我不能做一个远程焦油,并在这里复制。 那么,有没有办法将gzip转换为tar.gz。 (目前,.gz不能被识别为tar档案。) 谢谢。

mysqldump与shell脚本中的ssh连接

我正在使用一个shell脚本打开一个ssh连接并创build一个sqldump。 但是,当我在shell脚本中使用mysqldump ,它给了我错误:“没有这样的文件或目录” 这是我使用的线路: ssh user@host mysqldump -uusername -hlocalhost -ppassword –all-databases > /home/user/sqlfile.sql 当我在打开的ssh连接或命令行中的服务器中使用mysqldump时, mysqldump工作正常。 所以我的问题是为什么我得到错误,为什么我不能在shell脚本中运行mysqldump命令?

pipe道mysqldump到MySQL

有时我需要将MySQL数据库(db1)复制到另一个数据库(db2)。 我发现这个命令简洁而有效: mysqldump –opt db1 | mysql db2 它工作正常,但现在它打破了以下错误: 错误1064(42000)1586行:您的SQL语法中有错误; 检查与您的MySQL服务器版本相对应的手册,以在'mysqldump:Could not execute'附近使用正确的语法。SHOW TRIGGERS LIKE'some_table_name'':MySQL server'at line 1 首先想到的是,数据库太大了(未压缩的SQL转储> 1G,目前为1090526011个字节,准确而言)就像这样pipe道化。 当我做mysqldump > file ,然后mysql < file工作正常,没有错误。 错误消息(some_table_name)中提到的表不是很大或特殊的。 第二个想法来自错误消息可能会被截断的印象,而且它说 “… MySQL服务器已经消失” 对此的快速研究表明,可能会达到最大数量的打开文件(用于MySQL和/或系统)。 所以我已经尝试添加–skip-lock-table到mysqldump并提高open-files-limit ,但没有运气,同样的错误。 明显的解决办法是做转储然后导入(因为它工作正常),但pipe道似乎更好,更清洁(如果我错了,让我知道),加上我很好奇,找出是什么原因导致这个问题。 我是否遇到影响命令pipe道的限制? 我一直在托pipe服务器上执行此操作,在Linux和我的开发机器上运行MySQL 5.1.60 – Linux上的MySQL 5.1.58。 后者给出了一点不同的错误: mysqldump:错误2013:丢失连接到MySQL服务器查询期间转储表other_table_name在行:7197 更新:问题是通过做独立的转储和导入,没有pipe道解决。 即使我觉得这不是我的问题的真正回答,ssmusoke的build议是最重要的,导致被接受的答案。

使用sed,line cuts来提取sql insert

我一直在阅读关于使用sed从sql转储提取数据,更准确,最终目的是提取插入特定的表,以便只恢复该表。 我正在使用这个: sed -n '/LOCK TABLES `TABLE_NAME`/,/UNLOCK TABLES/p' dump.sql > output.sql 我遇到的问题是,我们在1行上插入了超过50Mb的长度,因此在提取插入时,输出会在行结束之前被剪切。 喜欢: …… (4 3458,'0Y25565137SEOEJ','001','PREPAR',1330525937741, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (43459,'666 我试图使用awk ,甚至简单的grep ,结果是一样的,行被切断。 编辑:我使用这从MySQL的SQL转储和我正在工作的系统是一个Centos 5.2

如何将sql.gz文件转储到mysql

我已经将生产服务器上几乎所有的空间都分配给了我的表空间 现在我有一个约20GB的压缩转储需要被转储到MySQL 问题是服务器没有太多空间来解压缩文件(这需要大约120 GB) 我已经使用了beolw命令,但我是一个失败,因为它是第一次解压缩文件,然后redirect到MySQL的输出 gunzip dbdump.sql.gz | mysql -u root -proot123 -S /home/mysql55/tmp/mysql.sock 有没有什么办法,以便我可以转储压缩文件,而不需要解压缩 任何build议都非常感谢

在Linux中通过命令行截断表

我想用mysqldump命令截断我的一个db表,这样我就可以把这个命令放在sh文件中,以便每天执行它。 有没有人知道这个命令? 提前致谢