启动 pid-file 的 MySQL.Manager 退出而不更新 fi 错误
Posted
技术标签:
【中文标题】启动 pid-file 的 MySQL.Manager 退出而不更新 fi 错误【英文标题】:Starting MySQL.Manager of pid-file quit without updating fi error 【发布时间】:2011-05-07 10:48:21 【问题描述】:我在启动 mysql 时遇到以下错误...有人可以帮忙:
]#服务mysql启动 启动 pid-file 的 MySQL.Manager 退出而不更新 fi[FAILED] 以下是我的 my.cnf 文件...
** my.cnf 文件 *****
[mysqld] 数据目录=/var/lib/mysql socket=/var/lib/mysql/mysql.sock 用户=mysql
table_cache = 2048 innodb_buffer_pool_size = 2G innodb_file_per_table innodb_log_buffer_size = 8M innodb_log_file_size = 128M innodb_additional_mem_pool_size = 4M innodb_table_locks = 0 默认存储引擎=InnoDB join_buffer_size = 2M query_cache_size = 512M query_cache_limit = 2M sort_buffer_size = 8M 读取缓冲区大小 = 8M read_rnd_buffer_size = 4M key_buffer = 512M key_buffer_size = 256M max_allowed_packet = 16M 最大连接数 = 250 long_query_time = 5 log_slow_queries = ekb-qa-app-02-slow.log innodb_autoinc_lock_mode=2
[mysqld_safe] 日志错误=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
【问题讨论】:
【参考方案1】:我收到了完全相同的错误...最终误导了我。问题(至少对我而言)最终是我已将磁盘填满。试试df -h
看看你是否有能力。希望对您有所帮助,并且此错误也是由您引起的(因为它很容易修复:))。
【讨论】:
问题出在我的 Innodb 引擎上 谢谢,我也被误导了,磁盘已满,经过一些清理 mysql 运行良好。【参考方案2】:我认为问题可能出在 my.cnf 文件中的变量“performance_schema”。这个变量应该被注释掉。试试看吧。
【讨论】:
【参考方案3】:尝试直接运行mysqld_safe
并查看错误消息是否更具体地说明了您的问题。这样我就能够意识到我的日志文件有权限问题。
【讨论】:
【参考方案4】:我认为它会通过哈希修复 查询缓存
【讨论】:
【参考方案5】:这可能有两个原因:
-
mysqld 正在尝试将日志写入磁盘,磁盘已满。
mysqld 正在尝试将日志写入文件,但它没有适当的权限。
【讨论】:
在命令解决我的问题之前添加sudo
。【参考方案6】:
对我来说,问题在于服务器中有多个 my.cnf 文件,删除其中一个(错误文件)帮助我解决了问题
【讨论】:
【参考方案7】:对我来说,问题是对 mysql 数据文件的权限不足。数据文件是从另一个文件系统以 root 身份复制过来的。一旦我将文件的组和所有权更改为 mysql:mysql,错误就消失了。
【讨论】:
【参考方案8】:如果您在自己的分区上有 mysql(例如 /var/lib/mysql),请确保它没有变成只读的。为此,请尝试在该分区中创建(触摸)文件。如果它变为只读,它会通知您,您需要在该分区上运行手动 fsck。首先确保没有正在运行的进程( lsof /var/lib/mysql | awk 'print $1'|sort|uniq -c|awk 'print $2')然后在 fscking 之前卸载分区。
【讨论】:
【参考方案9】:/etc/init.d/mysql[d] 启动脚本也可以通过打印重叠的错误消息来超越自己,但您最终只会看到一个。您可能还会在脚本输出的中间看到“[FAILED]”或“[OK]”重叠,其中一些甚至可能取决于确切的终端软件你用。
同时,就我而言,真正的错误隐藏在下面:
Manager of pid-file quit wi[FAILED]dating file
我终于仔细查看了我的 mysqld 错误日志,发现了真正的问题:
/usr/sbin/mysqld: File 'MASTER/master15-bin.index' not found (Errcode: 2)
像这里的其他类似情况一样,问题来自从不同的主机复制整个 /var/lib/mysql 目录。这里我设置了一个新的复制服务器,因此 /etc/my.cnf 中的 MASTER 和 SLAVE 变量当然是不同的。我的主二进制日志位于 MASTER 子目录中。
一旦我把它清理干净,一切都很好。
所以这个“pid-file 管理员退出”错误是另一个红鲱鱼。我只是在这里添加这个故事,以再次表明(1)答案可能在您的错误日志中,并且(2)可能与您从 mysqld_safe 看到的这个错误无关。
【讨论】:
【参考方案10】:我只是在下面的语句中加上sudo命令,mysql就启动了。
$ sudo /etc/rc.d/init.d/mysql start
输入密码: 启动 MySQL。 我通过发出以下命令检查并发现 MySQL 正在运行:
$ mysqladmin -u root -pjoomla1 ping
mysqld 还活着
【讨论】:
【参考方案11】:这是我在使用 my.cnf 配置文件尝试优化性能后注意到的。
如果我将 innodb_log_file_size 设置为错误的值并尝试重新启动 mysql 服务器,它会正常关闭,但是当它尝试启动时,我会得到类似于以下内容:
Starting MySQL.The server quit without updating PID file ([FAILED]mysql/<insert pid file here>).
然后当我检查错误日志以了解发生了什么时,我看到了这一切:
140709 22:47:30 mysqld_safe mysqld from pid file /var/lib/mysql/<pid filename>.pid ended
140709 22:47:31 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140709 22:47:31 [Warning] Using unique option prefix thread_cache instead of thread_cache_size is deprecated and will be removed...
140709 22:47:31 [Note] Plugin 'FEDERATED' is disabled.
140709 22:47:31 InnoDB: The InnoDB memory heap is disabled
140709 22:47:31 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140709 22:47:31 InnoDB: Compressed tables use zlib 1.2.3
140709 22:47:31 InnoDB: Using Linux native AIO
140709 22:47:31 InnoDB: Initializing buffer pool, size = 512.0M
140709 22:47:31 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 67108864 bytes!
140709 22:47:31 [ERROR] Plugin 'InnoDB' init function returned error.
140709 22:47:31 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140709 22:47:31 [ERROR] Unknown/unsupported storage engine: InnoDB
140709 22:47:31 [ERROR] Aborting
140709 22:47:31 [Note] /usr/sbin/mysqld: Shutdown complete
140709 22:47:31 mysqld_safe mysqld from pid file /var/lib/mysql/<pid filename>.pid ended
除了我用“pid文件名”替换了pid文件名。
网站认为您可以将 innodb_log_file_size 设置为一个值,但有些东西试图告诉我这是一个 mysql 服务器计算的值,并且它是您无法设置的。
【讨论】:
【参考方案12】:你没有在这里提到你使用的是什么系统。对于 CentOS、Fedora 和 Red Hat Enterprise Linux,请使用 service mysqld 而不是 mysql
sudo /etc/init.d/mysqld start
【讨论】:
【参考方案13】:此建议也会有所帮助。 删除以下列表,以便 DEFAULTS 可以从 my.cnf/.ini 的 [mysqld] 部分支持您的工作 排序缓冲区大小 读取缓冲区大小 read_rnd_buffer_size 加入缓冲区大小 改善(减少)响应时间。 256K 的 DEFAULT 可以得到你需要的数据,为什么还要故意读取 16M 的 read_rnd_buffer_size 数据?
【讨论】:
以上是关于启动 pid-file 的 MySQL.Manager 退出而不更新 fi 错误的主要内容,如果未能解决你的问题,请参考以下文章
MySQL启动错误Starting MySQL.Manager of pid-file quit without updating file.