Los*_*les 15 memory linux mysql
我有一个机架空间服务器,我一直在租用它来运行我的个人项目。由于我很便宜,它有 256Mb 的 RAM,老实说,它处理不了很多。每隔一段时间,当流量急剧上升时,服务器决定开始杀死进程,似乎 mysqld 是一种流行的杀死进程。我尝试访问我的网站,但收到一条消息,提示建立数据库连接时出错。检查日志显示mysqld由于内存不足而被杀死。
由于我仍然和昨天一样穷,并且不想升级我的机架空间 VM 的 RAM,有没有办法告诉它在 mysqld 死机时自动重新启动它?
我想使用类似 crontab 的东西,但唉,我也不知道在那里做什么。我想我是“桌面上的 Linux”一代的产物,因为我可以在我的台式机和笔记本电脑(几乎只运行 Linux)上做大多数事情,但仍然缺乏很多 Linux 的服务器管理技能。
服务器运行 CentOS 6.3
ter*_*don 16
这不是一个干净的解决方案,显然首先避免这个问题会更好。无论如何,我不确定 CentOS 如何管理服务,但我认为它使用service. 如果是这样,您可以检查mysql服务是否正在运行
/sbin/service mysql status
Run Code Online (Sandbox Code Playgroud)
如果mysql正在运行,则此命令将成功退出,如果 i 未运行,则返回非 0 退出状态。因此,如果服务未使用以下命令运行,您可以启动该服务:
/sbin/service mysql status || service mysql start
Run Code Online (Sandbox Code Playgroud)
您可以添加此行以/etc/crontab每分钟启动这些命令:
* * * * * /sbin/service mysql status || service mysql start
Run Code Online (Sandbox Code Playgroud)
这有点令人不安。
mysqld总是被mysqld_safe重新启动,因为在底部有一个无限循环mysqld_safe来检查异常关闭。如果错误太严重,甚至mysqld_safe无法mysqld在后续尝试中重新启动。
鉴于mysqld_safe设计用于这种情况,mysqld如果mysqld_safe无论如何都会拒绝它,强行启动可能不是一个好主意。
您需要在 my.cnf 中找到错误日志,它将位于
[mysqld]
log-error=log-filename
Run Code Online (Sandbox Code Playgroud)
或者
[mysqld_safe]
log-error=log-filename
Run Code Online (Sandbox Code Playgroud)
阅读文本文件(可能通过运行tail -30 log-filename)并找到 mysqld 处理关闭的来源。
| 归档时间: |
|
| 查看次数: |
32227 次 |
| 最近记录: |