我是Moodle站点的管理员,该站点的用户表已损坏并且无法使用。
幸运的是,一个简单的方法REPAIR TABLE mdl_user
使它再次工作。问题是我不知道为什么它实际上崩溃并使其无法使用,我想确保下次我有更好的准备。
我不是一个经验丰富的 DBA——我只是一个做很多事情的开发人员,所以请耐心等待。
我可以只恢复备份,但我想有办法防止崩溃。
这些表是 utf8_general_ci 并使用 MyISAM。
为什么 MySQL 表会崩溃?我能做些什么来防止这种情况发生?
我正在尝试在表中添加一个新列,并且查询给了我这个错误 1114。
我的 RDS 实例大小很小。1.7 GB 内存,1 个 ECU(1 个虚拟核心和 1 个 ECU)我试图修改的表有 500 万行和 7GB 的大小。实例的磁盘大小为 15GB(40% 免费)。
这对我们来说是关键时刻,因为我们被卡住了,AWS RDS 不允许访问 mysql 配置的所有参数。我如何摆脱这个问题?
我在 linode 上托管了几个站点,但遇到了一个奇怪的问题。在过去的两年中,该站点一直运行良好,现在服务器上的所有网站都随机转到“站点离线检查 settings.php”页面。最近网站没有任何变化。
当我尝试 go do mysqld stop 时,它说忙了一段时间,然后最后说失败,而执行 start 会导致立即失败。
我在 google 上搜索的许多线程都表明 settings.php 中的主机名已关闭,但由于该网站已经上线两年了,我认为情况并非如此。
我以前不必对 mySQL 进行故障排除,但如果我没记错的话,我应该查看的日志文件是 Hostname.err。在那里,它有大量关于 InnoDB 的错误链。列为致命错误的那个说:
InnoDB:致命错误:无法为缓冲池分配内存
我很感激任何建议,如果有日志文件可以帮助我知道。
编辑:请求的信息。1) 当我检查 CNF 时,似乎所有涉及 innoDB 的行都用 # 注释。这意味着它一直是这样,因为我没有修改它。
2)mysql Ver 14.14 Distrib 5.5.14, for Linux (i686) using readline 5.1
3)看起来每次我尝试启动数据库时/在网站死掉之前,IO速率都会出现巨大的跳跃。如果这些缓存表变得太难以管理并且有丢失任何东西的风险,我该如何清除它们?
第三次编辑(现在使用 datadir):
虚拟机上有多少内存?512MB
datadir 有多少空间?
大小:20G 已用:19G 可用 0 使用百分比:100%
ibdata1 ( ls -lh /var/lib/mysql/ibdata1 ) 的大小是多少?114M
仅供参考:如果将来有人遇到同样的问题,我的问题是二进制日志文件占用了我的整个磁盘空间。见这里http://systembash.com/content/mysql-binary-log-file-size-huge/