备份Mysql数据库时,报:Couldn't execute 'show fields from的一种问题解决方案

    因为数据库的表出现问题了,通过命令:

    myisamchk -r -q *.MYI

    执行了修复,可是通过mysqldump数据的时候,老是报Couldn't execute 'show fields from...这样的问题,然后dump就结束不执行了,心理那可是真痛呀,以为是修复命令没有起作用,心想这数据可怎么样弄出来呀。

    想到的第一步是把数据文件拷贝出来,拿到待恢复的服务器上面去恢复,因为前面因为服务器挂了也做了这样的操作,只是需要在原服务器上面先建立相应的表结构即可,然后拿数据文件及表结构文件过去覆盖就可以了,可以参看我前面的文件通过Mysql数据文件进行数据库还原。我还心理得意着呢,把文件拷贝完后,在目标服务器使用原来的备份文件进行导入,也就是建立了相应的表结构,就等着把文件拷贝过去再覆盖就可以了。可是我突然想到,目标服务器的MYSQL版本是5.5,而现在的服务器的MYSQL的版本是5.1,这肯定就不能够使用文件覆盖的方式了,5.1的文件格式肯定不会被5.5支持的。

    心想这一着不起作用,我就把源服务器上面的MYSQL数据文件下载到本地总可以吧,于是就把数据文件及表结构打包好,通过WEB下载,可是发现下载速度居然只有几十K,这个几百M的文件得下载多久呀,不过慢归慢,这个还得继续下呀。

    在文件下载的同时,我就在网上搜了搜,有人也遇到类似的问题,提到的是my.cnf中的tmpdir路径设置的问题,我突然一下想起了,我刚才不是改过这个配置项吗,因为数据库所在分区的盘满了,我就想把tmpdir改到其它盘,后面才好继续备份。于是我赶紧把数据库停了,把这个配置项的值修改为原来默认的/tmp,再通过mysqldump,我靠,居然成功了。

    后来发现这是目录权限的问题:

    /tmp的目录权限如下,任何人都可以写:

    drwxrwxrwt   2 root root 69632 2011-11-02 17:17 tmp/

    而我设定的目录权限为只允许自己才可以写:

    drwxr-xr-x  2 fenglibin webusers  4096 2011-11-02 17:31 temp/

本文出自:冯立彬的博客




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值