无法启动 mysql - mysql 重生太快,已停止

Tom*_*Tom 33 mysql init.d apparmor

今天我全新安装了 ubuntu 12.04 并开始设置我的本地开发环境。我安装了 mysql 并编辑/etc/mysql/my.cnf以优化 InnoDB,但是当我尝试重新启动 mysql 时,它失败并出现错误:

[20:53][tom@Pochama:/var/www/website] (master) $ sudo service mysql restart
start: Job failed to start
Run Code Online (Sandbox Code Playgroud)

syslog 显示 init 脚本存在问题:

> tail -f /var/log/syslog

Apr 28 21:17:46 Pochama kernel: [11840.884524] type=1400 audit(1335644266.033:184): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=760 comm="apparmor_parser"
Apr 28 21:17:47 Pochama kernel: [11842.603773] init: mysql main process (764) terminated with status 7
Apr 28 21:17:47 Pochama kernel: [11842.603841] init: mysql main process ended, respawning
Apr 28 21:17:48 Pochama kernel: [11842.932462] init: mysql post-start process (765) terminated with status 1
Apr 28 21:17:48 Pochama kernel: [11842.950393] type=1400 audit(1335644268.101:185): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=811 comm="apparmor_parser"
Apr 28 21:17:49 Pochama kernel: [11844.656598] init: mysql main process (815) terminated with status 7
Apr 28 21:17:49 Pochama kernel: [11844.656665] init: mysql main process ended, respawning
Apr 28 21:17:50 Pochama kernel: [11845.004435] init: mysql post-start process (816) terminated with status 1
Apr 28 21:17:50 Pochama kernel: [11845.021777] type=1400 audit(1335644270.173:186): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=865 comm="apparmor_parser"
Apr 28 21:17:51 Pochama kernel: [11846.721982] init: mysql main process (871) terminated with status 7
Apr 28 21:17:51 Pochama kernel: [11846.722001] init: mysql respawning too fast, stopped
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?


我已经尝试过的事情:

我用谷歌搜索并发现了一个带有 apparmor 的 Ubuntu 错误(https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/970366),我将 apparmor 从强制模式更改为抱怨模式:

sudo apt-get install apparmor-utils
sudo aa-complain /usr/sbin/mysqld
sudo /etc/init.d/apparmor reload
Run Code Online (Sandbox Code Playgroud)

但它没有帮助。我仍然无法启动mysql。

我还认为这个问题可能是因为 InnoDB 日志文件的大小与 mysql 预期的不同。我删除了InnoDB日志文件中使用重启之前:sudo mv /var/lib/mysql/ib_logfile* /tmp。虽然没有运气。

解决方法:我重新安装了 12.04,确保不要以/etc/mysql/my.cnf任何方式接触。Mysql 正在工作,所以我可以继续我需要做的事情。但是我需要在某个时候对其进行编辑 - 希望我已经找到了解决方案,或者到那时这个问题已经得到了回答......

Tom*_*Tom 29

我终于想通了这个问题。基本上,一些参数的定义已经从之前的mysql版本中去掉了,取而代之的是不同的名称。要修复,请在 /etc/mysql/my.cnf 中替换:

# Tom Added to ensure the server character set is set to utf8
default-character-set = utf8
default-collation     = utf8_general_ci
Run Code Online (Sandbox Code Playgroud)

和:

# Tom Added to ensure the server character set is set to utf8
character_set_server  = utf8
collation_server      = utf8_general_ci
Run Code Online (Sandbox Code Playgroud)

这是相关的启动板错误报告:https : //bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/958120

或者轻松运行:

# Miraz added dpkg-reconfigure
dpkg-reconfigure mysql-server-5.5
Run Code Online (Sandbox Code Playgroud)

但请确保没有安装旧的 mysql 版本安装,如果有请删除:

# Miraz quick mysql package check
dpkg -l *mysql*
Run Code Online (Sandbox Code Playgroud)


小智 10

Innodb 有一个默认设置 (innodb_buffer_pool_size),它设置为 128M - 这对于您的服务器来说可能太大了(特别是如果您使用的是小型 Amazon EC2 AMI - 我就是这样)对我有用的修复是添加以下内容线到 /etc/mysql/my.cnf

innodb_buffer_pool_size = 16M
Run Code Online (Sandbox Code Playgroud)

我在这里写了这个修复http://www.mlynn.org/2012/07/mysql-5-5-on-ubuntu-12-04-job-failed-to-start


小智 10

我有一个类似的问题。这很令人沮丧,因为我看不到任何指示问题所在的错误日志。

就我而言,我为 innodb_buffer_pool_size 设置的值对于服务器的内存来说太大了。

我通过直接以 mysql 用户身份运行 mysqld 发现了这一点。

# su mysql
# mysqld
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您实际上可以看到错误输出。

  • 这是一个很好的提示,我一直在努力从 mysql 中获取一些有意义的调试信息。谢谢! (2认同)