mysqldump:couldn'tlinux find 查找文件table:";"是怎么回事

查看: 3218|回复: 8
用mysqldump命令导入出错!!!请帮我看看
我把cmd复制到了bin目录下,然后执行mysqldump
出现了如下错误
F:\APMServ5.2.0\MySQL5.0\bin&mysqldump mysql -u root -p comic_113635_com & comic
_113635_com.sql
Enter password: ******
-- MySQL dump 10.10
-- Host: localhost& & Database: mysql
-- ------------------------------------------------------
-- Server version& && & 5.0.27-community-nt
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!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 */;
mysqldump: Couldn't find table: &comic_113635_com&
你需要修复数据库吗? 用phpmyadmin就可以修复。
不是修复,是导入
phpmyadmin导入不了400m的数据
我想用命令导入,但是好像不太正确,哪里出错了呢?有高手帮忙看下么?
400M?一个文件????
% ls -t -r -l update.(0-9)* | xargs cat | mysql--one-database db_name
ls 命令产生更新日志文件的单列列表,更新日志文件根据服务器生成的顺序进行排序(要知道,如果您修改了其中的任何文件,排序的顺序都将改变,这将导致更新日志按错误的顺序使用)。
& & 您很可能必须使用某些更新日志。例如,如果自备份以来所产生的日志命名为update. 392、update.393 等等,可以重新运行它们中的命令:
& & % mysql--one-database db_name & updata.392
& & % mysql--one-database db_name & updata.393
& & 。。。
& & 如果正在运行恢复并打算使用更新日志恢复由于失策的DROP DATA B A S E、D R O P TABLE 或DELETE 语句而丢失的信息,应确保先从更新日志中删除这些语句。
是啊,所以只能用命令导入才比较好....
我在本地搭建了一个环境
我想导入后,再到后台分卷导出换到新的空间
我的这条命令是错在哪里呢?
提示符放错地方?还是后面的命令条不对?
我已经把sql文件放在了bin文件夹里
F:\APMServ5.2.0\MySQL5.0\bin&mysqldump mysql -u root -p comic_113635_com & comic
_113635_com.sql
Enter password: ******
继续求助~~~~~&&
mysql -u root -p comic_113635_com& comic_113635_com.sql
Powered bymysql数据导出找不到表解决方法 - MySQL当前位置:& &&&mysql数据导出找不到表解决方法mysql数据导出找不到表解决方法&&网友分享于:&&浏览:15次mysql数据导出找不到表大家好,我在用mysql导出数据时,遇到一个问题,请求高人解答。我的数据库和表都存在,但是导出时却报错Co& 这是我的数据库mysql&+--------------------+| Database
|+--------------------+| information_schema || mysql
|| performance_schema || rna
|+--------------------+5 rows in set (0.00 sec)这是数据库中的表mysql&+---------------+| Tables_in_rna |+---------------+| class
|| organism
|| species
|+---------------+5 rows in set (0.00 sec)导出时出错C:\Documents and Settings\Administrator&mysqldump -uroot -proot rna srna&d:\my.smysqldump: Couldn't find table: &&C:\Documents and Settings\Administrator&mysqldump -uroot -proot rna srna&d:\my.s------解决方案--------------------现场时在mysql里看看能否读出来
select * from srna
------解决方案--------------------select * 能得到结果吗?
------解决方案--------------------先查查有没有记录,我测试了下 语句没问题的呀
------解决方案--------------------在MYSQL中:select *& 提示什么:mysql -uroot -p123 -N -e &select *&&123.txt提示什么
------解决方案--------------------明显表坏了,修复下.
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有今天看啥 热点:
java.lang.ClassNotFoundException: Didn't find class &stu.love.neihan.MainActivity& on path: DexPathL,mainactivity.this
java.lang.ClassNotFoundException: Didn't find class &stu.love.neihan.MainActivity& on path: DexPathList &解决方案:
今天遇到一个Bug:&
具体的bug 显示:
10-06 22:34:43.019: E/AndroidRuntime(10813): Caused by: java.lang.ClassNotFoundException: Didn't find class &stu.love.neihan.MainActivity& on path: DexPathList[dexElements=[zip file &/data/app/stu.love.neihan-1.apk&],nativeLibraryDirectories=[/data/app-lib/stu.love.neihan-1, /vendor/lib, /system/lib]]
还有 concle &bug 显示如图:
我出错的原因:
是因为我使用的PullToRefresh 中的V4 包和我项目中的 v4 包 不匹配导致的bug!
将 PullToReFresh 中的V4包替换 即可!
啊呀是安卓啊。你这样的情况一般分两种原因:1、包名+类名写错了,可能一个字母,可能顺序颠倒2、没有导入到classpath中去,没玩过安卓,不知道怎么看是不是真正的导入jar包了。你看看项目里面有没有.classpath文件,然后记事本打开,看看里面有没有你说的那个jar包。
你好,这个问题出现的原因是您没有正确的配置好MySQL数据库的驱动包。如果您是使用工具开发,那么请您把驱动包配置到项目的库文件中。如果您没有使用任何工具,那么请将jar包配置到classpath中。
相关搜索:
相关阅读:
相关频道:
Android教程最近更新mysqldump的流程
本文内容遵从, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: /tech/database/the_process_of_mysqldump.html
前几天看到群里在讨论mysqldump导致锁表的问题,为什么一个表已经dump完了还会被锁住?mysqldump里面到底是怎么处理的,为了解答这些问题,就来看看mysqldump.cc中的实现吧。
目录 (Contents)
首先我们把参数和内部变量对应起来,并且看一下它们的注释:
–single-transaction: opt_single_transaction
Creates a consistent snapshot by dumping all tables in a single transaction. Works ONLY for tables stored in storage engines which support multiversioning (currently only InnoDB does); the dump is NOT guaranteed to be consistent for other storage engines. While a –single-transaction dump is in process, to ensure a valid dump file (correct table contents and binary log position), no other connection should use the following statements: ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, as consistent snapshot is not isolated from them. Option automatically turns off –lock-tables.
通过将导出操作封装在一个事务内来使得导出的数据是一个一致性快照。只有当表使用支持MVCC的存储引擎(目前只有InnoDB)时才可以工作;其他引擎不能保证导出是一致的。当导出开启了–single-transaction选项时,要确保导出文件有效(正确的表数据和二进制日志位置),就要保证没有其他连接会执行如下语句:ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE,这会导致一致性快照失效。这个选项开启后会自动关闭lock-tables。
–master-data: opt_master_data
This causes the binary log position and filename to be appended to the output. If equal to 1, will print it as a CHANGE MASTER if equal to 2, that command will be prefixed with a comment symbol. This option will turn –lock-all-tables on, unless –single-transaction is specified too (in which case a global read lock is only taken a short time at the b don’t forget to read about –single-transaction below). In all cases, any action on logs will happen at the exact moment of the dump. Option automatically turns –lock-tables off.
这个选项可以把binlog的位置和文件名添加到输出中,如果等于1,将会打印成一个CHANGE MASTER命令;如果等于2,会加上注释前缀。并且这个选项会自动打开–lock-all-tables,除非同时设置了–single-transaction(这种情况下,全局读锁只会在开始dump的时候加上一小段时间,不要忘了阅读–single-transaction的部分)。在任何情况下,所有日志中的操作都会发生在导出的准确时刻。这个选项会自动关闭–lock-tables。
–lock-all-tables: opt_lock_all_tables
Locks all tables across all databases. This is achieved by taking a global read lock for the duration of the whole dump. Automatically turns –single-transaction and –lock-tables off.
锁定所有库中所有的表。这是通过在整个dump的过程中持有全局读锁来实现的。会自动关闭–single-transaction 和 –lock-tables。
–lock-tables: lock_tables
Lock all tables for read. (D use –skip-lock-tables to disable.)
对所有表加读锁。(默认是打开的;用–skip-lock-tables来关闭)
–flush-logs: flush_logs
Flush logs file in server before starting dump. Note that if you dump many databases at once (using the option –databases= or –all-databases), the logs will be flushed for each database dumped. The exception is when using –lock-all-tables or –master-data: in this case the logs will be flushed only once, corresponding to the moment all tables are locked. So if you want your dump and the log flush to happen at the same exact moment you should use –lock-all-tables or –master-data with –flush-logs。
在开始导出前刷新服务器的日志文件。注意,如果你一次性导出很多数据库(使用 –databases= 或 –all-databases 选项),导出每个库时都会触发日志刷新。例外是当使用了 –lock-all-tables 或 –master-data 时:日志只会被刷新一次,那个时候所有表都会被锁住。所以如果你希望你的导出和日志刷新发生在同一个确定的时刻,你需要使用–lock-all-tables,或者 –master-data 配合 –flush-logs。
–delete-master-logs: opt_delete_master_logs
Delete logs on master after backup. This automatically enables –master-data.
备份完成后删除主库上的日志。这个选项会自动打开 –master-data.
–apply-slave-statements: opt_slave_apply(5.5)
Adds ‘STOP SLAVE’ prior to ‘CHANGE MASTER’ and ‘START SLAVE’ to bottom of dump.
在’CHANGE MASTER’前加上’STOP SLAVE’,在导出文件的末尾加上’START SLAVE’.
主要代码流程
我们分别看一下5.1和5.5的代码,都基于最新的trunk(5.1-rev.-rev.4148)。
5.1版本主要流程
我们首先看下5.1版本的。
if ((opt_lock_all_tables || opt_master_data) &&
do_flush_tables_read_lock(mysql))
如果设置了master-data或lock-all-tables,则做FLUSH TABLES的操作。
来看下do_flush_tables_read_lock()里面是怎么做的,
do_flush_tables_read_lock()
( mysql_query_with_error_report(mysql_con, 0,
((opt_master_data != 0) ? // 如果设置了--master-data
"FLUSH /*!40101 LOCAL */ TABLES" : // 那么用FLUSH LOCAL TABLES
"FLUSH TABLES")) || // 如果没设置那么使用FLUSH TABLE
mysql_query_with_error_report(mysql_con, 0,
"FLUSH TABLES WITH READ LOCK") ); // 如果上面的语句执行成功了,再执行这个
先FLUSH TABLES,成功后用FLUSH TABLES WITH READ LOCK加全局读锁。
再往下会判断single-transaction,
if (opt_single_transaction && start_transaction(mysql))
如果定义了–single-transaction则打开一个事务来读取数据。
我们看下start_transaction()的实现,
start_transaction()
return (mysql_query_with_error_report(mysql_con, 0,
"SET SESSION TRANSACTION ISOLATION "
"LEVEL REPEATABLE READ") || // 先设置会话的隔离级别为RR
mysql_query_with_error_report(mysql_con, 0,
"START TRANSACTION "
"/*!40100 WITH CONSISTENT SNAPSHOT */")); // 再用一致性快照模式(RR)启动事务
会先设置隔离级别为RR,然后START TRANSACTION加上一致性快照的Hint。
接下来是获取Master的状态,
if (opt_master_data && do_show_master_status(mysql))
如果设置了–master-data 则把当前的Master status打印出来。
接下来再判断如果启用了–single-transaction,则可以释放表锁的,因为事务已经启动了。
if (opt_single_transaction && do_unlock_tables(mysql)) /* unlock but no commit! */
do_unlock_tables()里面就发一条UNLOCK TABLES语句释放全局表锁。
do_unlock_tables()
return mysql_query_with_error_report(mysql_con, 0, "UNLOCK TABLES");
然后开始调用dump_*函数根据需要导出整个实例或者一个库或者一个表。
dump_all_databases()->dump_all_tables_in_db()
if (lock_tables)
DYNAMIC_STRING
init_dynamic_string_checked(&query, "LOCK TABLES ", 256, 1024);
for (numrows= 0 ; (table= getTableName(1)) ; )
char *end= strmov(afterdot, table);
if (include_table((uchar*) hash_key,end - hash_key))
numrows++;
dynstr_append_checked(&query, quote_name(table, table_buff, 1));
dynstr_append_checked(&query, " READ /*!32311 LOCAL */,");
if (numrows && mysql_real_query(mysql, query.str, query.length-1))
DB_error(mysql, "when using LOCK TABLES");
/* We shall continue here, if --force was given */
dynstr_free(&query);
/* 如果设置了--lock-tables(默认),则导出之前需要LOCK TABLES tables_name READ。*/
while ((table= getTableName(0)))
char *end= strmov(afterdot, table);
if (include_table((uchar*) hash_key, end - hash_key))
dump_table(table,database); // 导出一张表
my_free(order_by, MYF(MY_ALLOW_ZERO_PTR));
order_by= 0;
if (opt_dump_triggers && mysql_get_server_version(mysql) >= 50009)
if (dump_triggers_for_table(table, database)) // 导出 trigger
my_fclose(md_result_file, MYF(MY_WME));
maybe_exit(EX_MYSQLERR);
/* 先dump_table来导出表,然后再看是不是配置了--triggers来决定是不是导出Trigger,dump_triggers_for_table。*/
if (lock_tables)
VOID(mysql_query_with_error_report(mysql, 0, "UNLOCK TABLES"));
/* 导出完成之后,释放表锁 */
所以我们可以知道,如果用–master-data和–single-transaction来导出数据,因为–lock-tables被自动关闭,所以导出过程中只会对当前正在做导出操作的表有IS锁,已经完成或没有开始的表,则不会加锁。
如果用的是默认–lock-tables打开的选项,则会先把所有库的锁加上,再进行导出操作,最后一次性释放所有锁。
5.5版本主要流程
接下来我们再比较一下,5.5的mysqldump有哪些变化。
if ((opt_lock_all_tables || opt_master_data ||
(opt_single_transaction && flush_logs)) &&
do_flush_tables_read_lock(mysql))
这里有所不同,增加了flush_logs的判断,如果只是单纯的–single-transaction,不会调用do_flush_tables_read_lock(),必须同时制定–flush-logs。
Flush logs before starting transaction since
this causes implicit commit starting mysql-5.5.
if (opt_lock_all_tables || opt_master_data ||
(opt_single_transaction && flush_logs) ||
opt_delete_master_logs)
if (flush_logs || opt_delete_master_logs)
if (mysql_refresh(mysql, REFRESH_LOG))
verbose_msg("-- main : logs flushed successfully!\n");
/* Not anymore! That would not be sensible. */
flush_logs= 0;
5.5里面会尝试FLUSH LOGS。
if (opt_delete_master_logs)
if (get_bin_log_name(mysql, bin_log_name, sizeof(bin_log_name)))
5.5新增的变量,删除master上的log,这里先获取binlog的文件名。
if (opt_single_transaction && start_transaction(mysql))
这一段没有变化
/* Add 'STOP SLAVE to beginning of dump */
if (opt_slave_apply && add_stop_slave())
if (opt_master_data && do_show_master_status(mysql))
if (opt_slave_data && do_show_slave_status(mysql))
if (opt_single_transaction && do_unlock_tables(mysql)) /* unlock but no commit! */
这里有新加的opt_slave_apply和opt_slave_data部分,添加STOP SLAVE语句和显示SHOW SALVE STATUS的结果。
之后也是调用dump_*来导出数据。
但是因为5.5有了MDL(Meta data lock),所以–single-transaction时,事务内操作过的表都会持有MDL,因此不会被DDL破坏。
例如,mysqldump已经备份了a,b,c表,因为它们在事务内,事务还没提交,它们的MDL不会释放,因此另外的线程如果做a,b,c中任意一张表的DDL操作,都会出现Waiting for table metadata lock,而还没备份到的表不会持有MDL,因此还可以做DDL。
类似的文章
分类目录分类目录
选择分类目录
生活轨迹&&(66)
&&&随笔日记&&(23)
&&&心灵感触&&(18)
技术笔记&&(174)
&&&数据库&&(84)
&&&操作系统&&(34)
&&&程序设计&&(39)
&&&架构设计&&(7)
&&&项目管理&&(3)
&&&嵌入式&&(4)
&&&人工智能&&(3)
学习研究&&(11)
&&&自然科学&&(6)
&&&经济管理&&(4)
娱乐活动&&(4)> mysqldump备份及脚本导出多张表的时候表之间用空格分开:#mysqldump-h192.16
mysqldump备份及脚本导出多张表的时候表之间用空格分开:#mysqldump-h192.16
发布时间: & &
浏览:135 & &
回复:0 & &
悬赏:0.0希赛币
mysql dump 备份及脚本!
导出多张表的时候表之间用空格分开:# mysqldump -h192.168.254.102 -uroot test testaa testbb &zbb.sql错误写法:# mysqldump -h192.168.254.102 -uroot test testaa,testbb &zbb.sqlmysqldump: Couldn't find table: "testaa,testbb" 正文:本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的MySQL 版本为 5.0.22。 目前 MySQL 支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb 所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump。 1、mysqldump1.1 备份mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。现在来讲一下 mysqldump 的一些主要参数: --compatible=name它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。 --complete-insert,-c导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。 --default-character-set=charset指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。 --disable-keys告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。 --extended-insert = true|false默认情况下,mysqldump 开启 --complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。 --hex-blob使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有BINARY、VARBINARY、BLOB。 --lock-all-tables,-x在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 --single-transaction 和 --lock-tables 选项。 --lock-tables它和 --lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM表,如果是 Innodb 表可以用 --single-transaction 选项。 --no-create-info,-t只导出数据,而不添加 CREATE TABLE 语句。 --no-data,-d不导出任何数据,只导出数据库表结构。 --opt这只是一个快捷选项,等同于同时添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 选项。本选项能让 mysqldump 很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用 --skip-opt 禁用。注意,如果运行 mysqldump 没有指定 --quick 或 --opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。 --quick,-q该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。 --routines,-R导出存储过程以及自定义函数。 --single-transaction该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。本选项和 --lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用 --quick 选项。 --triggers同时导出触发器。该选项默认启用,用 --skip-triggers 禁用它。 2,备份脚本#!/bin/bash#
use mysql is amounte&& INNBOD#/usr/san/ppppp.shbak_home=/usr/san/ppmysqlid="amounte"mysql_alias="pp"year=`date +%Y`month=`date +%m`day=`date +%d`datenow=$year$month$daymysql_name=$mysql_alias$datenowmysqldump -uroot -pzbb@bkeep --opt -R --single-transaction $mysqlid & $bak_home/$mysql_name.sqltar fzc $bak_home/$mysql_name.tar.gz $bak_home/$mysql_name.sqlrm $bak_home/$mysql_name.sqlfind $bak_home/*.tar.gz& -mtime +30 -exec rm -f {} \;
#!/bin/bash#
use mysql is amounte3&& MYSAM# backup /usr/san/aa/aaaaa.shbak_home=/usr/san/aamysqlid="amounte3"mysql_alias="aa"year=`date +%Y`month=`date +%m`day=`date +%d`datenow=$year$month$daymysql_name=$mysql_alias$datenowmysqldump -uroot -pzbb@bkeep --opt -R -x $mysqlid & $bak_home/$mysql_name.sqltar fzc $bak_home/$mysql_name.tar.gz $bak_home/$mysql_name.sqlrm $bak_home/$mysql_name.sqlfind $bak_home/*.tar.gz& -mtime +30 -exec rm -f {} \;
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&}

我要回帖

更多关于 find in set 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信