当前位置:Gxlcms > 数据库问题 > 修改mysql存储引擎备份数据库报错及解决方案

修改mysql存储引擎备份数据库报错及解决方案

时间:2021-07-01 10:21:17 帮助过:17人阅读

原因:由于监控服务器最近cpu负载比较高。(cpu4核心,负载2.7左右)感觉很奇怪,因为别的服务器mysql占用的资源并不多,因此我首先优化了数据库的配置文件。cpu稍微下降了一点,但是没有特别明显的变化。

于是,从mysql的存储引擎和日志考虑,结果发现默认用的引擎是myisam。好吧。换成innodb,(由于事先我没备份,就在配置文件修改了引擎,因为日志除了二进制其他并没有开启。所以没动它。重启数据库。


ok

技术分享早就听说这两个引擎,区别,看来性能差别真大啊!


好吧。备份数据库吧!


使用备份全部数据库时候

mysqldump: Got error: 23: Out of resourceswhen opening file‘./mysql/jchigr32.MYD‘ (Errcode: 24) when using LOCK TABLES

技术分享

原因

出现Outof resources when opening file ‘./xxx.MYD‘ (Errcode: 23)错误是

因为打开的文件数超过了my.cnf--open-files-limitopen-files-limit选项

无法在mysql命令行直接修改,必须在my.cnf中设定,最大值是65536

 

首先用ulimit-n命令查看下打开文件数限制:

默认是1024

解决

vim  /etc/my.cnf

open_files_limit=65536(最大)

技术分享


重启mysql  ok



技术分享

检查

mysqlcheck -uroot -pxxx  mysql

Error    : Youcan‘t use locks with log tables.

Error    : Table‘mysql.tempmix‘ doesn‘t exist

status   :Operation failed

mysql.tempmix1

Error    : Table‘mysql.tempmix1‘ doesn‘t exist

status   :Operation failed

mysql.tempmix4

Error    : Table‘mysql.tempmix4‘ doesn‘t exist

status   :Operation failed

 

好吧!请教谷歌大神

使用LOCK TABLES时,mysqldump的表不存在

症状

MySQL数据库转储失败,错误:

mysqldump: Goterror: 1146: Table ‘<TABLENAME>‘ doesn‘t exist when using LOCK TABLES

原因

  1. 也许有人删除并重新创建InnoDB数据文件却忘了从数据库目录中删除InnoDB表的相应的.FRM文件,或者有人移动.FRM文件到另一个数据库。 请与show tables

  2. 不正确的权限和所有权上表文件MySQL数据目录

  3. 表已损坏

  4. 表中创建大写

解析度

  1. 请与show tables ,如果表中未列出的举动.frm从数据库目录文件出来    

  2. 权限和所有权在MySQL数据目录表的文件是不正确的,理想的所有者应该是MySQL用户和权限设置为660。

  3. 修复表

  4. 设置lower_case_table_names

如果以上所有点都ok然后尝试使用--skip-lock-tables参数用mysqldump 。


根据上面的思路,很快解决!


如果出现这种错误,建议单独备份数据库。



本文出自 “?唯一!” 博客,请务必保留此出处http://renzhiyuan.blog.51cto.com/10433137/1761241

修改mysql存储引擎备份数据库报错及解决方案

标签:修改   存储   引擎   

人气教程排行