备份Mysql数据库时,报:Couldn't execute 'show fields from的一种问题解决方案
2011-11-02 17:34
267 查看
因为数据库的表出现问题了,通过命令:
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/
本文出自:冯立彬的博客
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/
本文出自:冯立彬的博客
相关文章推荐
- linux定时备份mysql数据库,及解决crontab执行时生成数据库文件为空的问题
- mysql数据库,使用dos命令备份和解决编码问题
- 一种深入解决MySQL数据库优化方案的体系设计
- mysql数据库不能插入中文问题解决方案
- linux定时备份mysql数据库,及解决crontab执行时生成数据库文件为空的问题
- java下通过EXEC解决mysql数据库备份、恢复问题
- VS2008安装SP1时卡在KB945140问题解决方案备份备份
- 解决WEB对js、css缓存问题的一种可行方案
- C#远程连接MySQL数据库以及相关远程连接问题解决方案
- 一种解决在Linux环境下发送短信中文乱码问题的方案
- 在C# 中不使用递归解决“数独”问题的一种方案
- 使用Hibernate连接MySQL数据库发生closed.Connection问题的一种解决方法
- VS2008下编译C++程序,解决找不到 stdint.h的问题方案
- SqlServer提示“列前缀tempdb.无效: 未指定表名”问题解决方案
- Ubuntu 12.04 升级至13.04 时显卡不兼容问题解决方案
- Oracle ODP.Net 在Windows Server 2008 x64 中的调用问题解决方案
- 一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
- iOS项目开发键盘弹出遮挡输入框问题解决方案
- memcached 单点问题解决方案——吐槽memcached proxy 之memagent
- 在java中一种中文问题的解决办法