今天导出一个数据库(挺大的)的时候使用mysqldump导出,几秒钟就完了,总感觉不对劲,下载到本地导入后发现少了很多表,楼主现在在用navicat dump sql file。。。
请问有什么好方法快速而又完整的导出数据库?
请问有什么好方法快速而又完整的导出数据库?
1
march1993 Apr 8, 2015
你 mysqldump 命令怎么打的
|
3
xiaowu365 Apr 8, 2015
这不科学
|
4
Mac Apr 8, 2015
mysql 的用户权限?你用的是root帐号?
|
5
cst4you Apr 8, 2015
大的还是直接拷data目录吧...
|
6
caixiexin Apr 8, 2015
你是在sqlfile文件里发现少了表,还是把sqlfile文件恢复到数据库里少了表呢。
前者的话,检查mysqldump时的日志看看,有没有报错? 如果是后者的话,可能是你两个mysql数据库版本不一样,有些create table语句的语法不支持,从另一个库恢复的时候,create table语句失败了,这个问题手动改下导出的sqlfile文件的建表语句能解决。 这是我dump时候的语句,一般把该加的参数都加上。 mysqldump -h localhost -uusername -ppwssword -P端口号 --master-data=2 --single-transaction --opt --routines --events --triggers database_name |
8
bjzhush Apr 8, 2015
有些特殊字符或者二进制的内容在数据库里面,即使导出了也不能正确导入
|
11
kn007 Apr 8, 2015
|
12
kn007 Apr 8, 2015
另外我完整备份数据库的语句:
mysqldump -h localhost -uroot -proot --lock-all-tables --all-databases > ALLDB.sql |
13
killerv OP |
16
kn007 Apr 8, 2015
@julyclyde 你是说innodb么?我换过几次VPS全部都是data直接过去,我不知道你怎么知道是我以为,而不是我去尝试后,得出来的结论。
我就是确认可以,才专门付费给dropbox去同步整个data目录到dropbox,每次我也是通过dropbox恢复下来的。 如果不行你首先要确认下你ibdata1等这些有没有复制到。 还有就是my.cnf的innodb_data_file_path要一致。我确实试了可以再说的。 我的mysql版本是5.6,从5.5到5.6我都是这样过来的。 如果是说这条语句: mysqldump -h localhost -uroot -proot --lock-all-tables --all-databases > ALLDB.sql 我自己也是试了可以的。 |
19
cloudzhou Apr 8, 2015
这样严谨的做法当然要 lock table 的,在 lock 之后以及进行 flush cache,之后就是文件直接 sync 都是可以的
|
20
caola Apr 8, 2015
我一般使用:
mysqldump --host=localhost --user=root --password=root --add-locks --add-drop-table --lock-tables --database my_data > my_data.sql |