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

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

今天我全新安装了 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

系统日志显示初始化脚本存在问题:

> 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

有任何想法吗?


我已经尝试过的事情:

我谷歌了一下,发现了一个 Ubuntu apparmor 的 bug(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

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

我还认为问题可能是因为 InnoDB 日志文件的大小与 mysql 预期的大小不同。我在重新启动之前删除了 innodb 日志文件:sudo mv /var/lib/mysql/ib_logfile* /tmp。但是没有运气。

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

答案1

我终于弄清楚了这个问题。基本上,一些参数的定义已从 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

和:

# Tom Added to ensure the server character set is set to utf8
character_set_server  = utf8
collation_server      = utf8_general_ci

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

或者轻松运行:

# Miraz added dpkg-reconfigure
dpkg-reconfigure mysql-server-5.5

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

# Miraz quick mysql package check
dpkg -l *mysql*

答案2

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

innodb_buffer_pool_size = 16M

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

答案3

我遇到了类似的问题。这很令人沮丧,因为我看不到任何错误日志来表明问题出在哪里。

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

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

# su mysql
# mysqld

这样您就能真正看到错误输出。

答案4

这似乎归结为 MySQL 配置中的错误,位于/etc/mysql/my.cnf和文件中/etc/mysql/conf.d/

在我的情况下,这是一个错误的bind-address值,因为我的机器的 IP 地址已经改变,MySQL 无法再绑定。请随意阅读更多关于此内容的内容这篇博客文章

相关内容