我有一个在digitalocean云上运行的mysql实例。 有时候mysql实例在工作了几天之后就崩溃了,所以我监视一下它会崩溃后使用monit重新启动。
今天我遇到了这种情况,它表明mysql仍然在运行,但它没有进程ID(我想因为我无法访问mysql数据库并在重新设置之后)工作正常)。可以告诉为什么会出现这种情况......?
答案 0 :(得分:2)
Monit
将始终检查pid文件中的pid号是否属于正在运行的进程。如果程序以“正常”方式崩溃并死亡,则进程ID(pid)将不存在,并且monit将知道程序未运行并且即使存在pid文件也将重新启动它。有些服务器会崩溃并留下一个僵尸进程,并且似乎正在运行。 Monit还测试僵尸进程,如果一个进程变成了僵尸,它将发出警报。
这可能是由于monit
中的错误导致其无法删除监控 zombie 进程。因此,请尝试修改您的配置
使用pidfile检查进程mysql /opt/mysql/data/myserver.mydomain.pid 组数据库 start program =“/ etc / init.d / mysql start” stop program =“/ etc / init.d / mysql stop” 如果主机192.168.1.1端口3306协议mysql失败则重启 如果5在5个周期内重启,则超时 取决于mysql_bin 取决于mysql_rc 使用path / opt / mysql / bin / mysqld检查文件mysql_bin 组数据库
更多详情here
答案 1 :(得分:1)
有几个选项可以检查你的mysql process_id
1st. $ ps aux | grep mysql
这将显示如下Reference
mysql 28290 1.1 2.7 340496 56812 ? Sl Jul31 348:27 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock
^^^^
process_id
检查mysql Reference的进程ID的第二个选项。
2nd. mysql> SHOW FULL PROCESSLIST\G
*************************** 1. row ***************************
Id: 534
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: SHOW FULL PROCESSLIST
1 row in set (0.00 sec)
在上面的示例中,它显示正在运行的线程的ID。上面的例子是534
。
检查mysql Reference的进程ID的第三个选项。
3rd. $ pidof mysqld
第四个检查mysql Reference
的进程ID的选项4th. mysql> SELECT CONNECTION_ID();
-> 23786
答案 2 :(得分:0)
每个进程都必须有进程ID。为了找出你的mysql实例有什么pid,你可以在终端中使用以下命令:
ps aux | grep mysql
这应该显示如下:
_mysql 3034 0,0 0,3 2664388 58460 ?? S Mer01pm 4:00.97 /usr/local/mysql/bin/mysqld ....
列表中的第二个元素(在我的情况下为3034)是进程ID。
答案 3 :(得分:0)
可能有各种原因。要确定您需要查看日志的问题。然而,这对我来说似乎是个错误。您使用的是什么版本的mysql,可以更新吗?
由于
答案 4 :(得分:0)
您可以访问以下流程ID:
以admin身份登录Mysql:
mysql -uroot -ppassword;
而不是运行命令:
mysql> show processlist;
您将获得以下内容:
+----+-------------+--------------------+----------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+--------------------+----------+---------+------+-------+------------------+
| 49 | application | 192.168.44.1:51718 | XXXXXXXX | Sleep | 183 | | NULL ||
| 55 | application | 192.168.44.1:51769 | XXXXXXXX | Sleep | 148 | | NULL |
| 56 | application | 192.168.44.1:51770 | XXXXXXXX | Sleep | 148 | | NULL |
| 57 | application | 192.168.44.1:51771 | XXXXXXXX | Sleep | 148 | | NULL |
| 58 | application | 192.168.44.1:51968 | XXXXXXXX | Sleep | 11 | | NULL |
| 59 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+----+-------------+--------------------+----------+---------+------+-------+------------------+
您将看到不同连接的完整详细信息。现在你可以杀死睡眠连接,如下所示: