Mysql 服务器无法在 Ubuntu 16.04 上启动

Mysql 服务器无法在 Ubuntu 16.04 上启动

我正在使用 Ubuntu 16.04,最近我的数据库停止工作了(不知道为什么,可能是在更新之后)。当我尝试重新安装时,mysql-server-5.7它在安装时返回错误,所以我清除了所有内容并切换到mysql-server-5.6,此版本可以安装但无法运行。这是输出:

mysql.service - LSB: Start and stop the mysql database server daemon
   Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)
   Active: failed (Result: exit-code) since Čet 2017-02-02 10:00:15 CET; 8s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 9225 ExecStart=/etc/init.d/mysql start (code=exited, status=1/FAILURE)
 Main PID: 12545 (code=exited, status=1/FAILURE)

Feb 02 09:59:44 alen-Aspire-E1-570G systemd[1]: Starting LSB: Start and stop the mysql database server daemon...
Feb 02 09:59:44 alen-Aspire-E1-570G mysql[9225]:  * Starting MySQL database server mysqld
Feb 02 09:59:44 alen-Aspire-E1-570G su[9259]: Successful su for mysql by root
Feb 02 09:59:44 alen-Aspire-E1-570G su[9259]: + ??? root:mysql
Feb 02 09:59:44 alen-Aspire-E1-570G su[9259]: pam_unix(su:session): session opened for user mysql by (uid=0)
Feb 02 10:00:15 alen-Aspire-E1-570G mysql[9225]:    ...fail!
Feb 02 10:00:15 alen-Aspire-E1-570G systemd[1]: mysql.service: Control process exited, code=exited status=1
Feb 02 10:00:15 alen-Aspire-E1-570G systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.
Feb 02 10:00:15 alen-Aspire-E1-570G systemd[1]: mysql.service: Unit entered failed state.
Feb 02 10:00:15 alen-Aspire-E1-570G systemd[1]: mysql.service: Failed with result 'exit-code'.

我希望有人能帮助我,因为我没有主意了。编辑:Mysql 错误日志:http://pastebin.com/tuMj1AA7

答案1

我遇到了同样的问题并怀疑它与 apparmor 有关。

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=865534

TL;DR-试试这个:

  1. echo -n "/usr/sbin/mysqld" | sudo tee /sys/kernel/security/apparmor/.remove
  2. sudo service mysql start

答案2

您应该阅读您发布的日志,它们实际上包含有用的信息,您可以用它们自己解决问题。

170202 09:48:16 mysqld_safe 使用 /var/lib/mysql /usr/sbin/mysqld 中的数据库启动 mysqld 守护进程
:无法读取 '/etc/mysql/mariadb.conf.d/' 的目录(错误代码:13 - 权限被拒绝)
默认处理中出现致命错误。程序中止

由于权限/etc/mysql/mariadb.conf.d/不正确,您的启动失败。

我手边没有 Ubuntu 系统可以检查,但应该相当容易地弄清楚需要什么权限。您可能需要向组或世界授予读取(r)和/或遍历(x)权限。

答案3

同一个错误可能有很多原因。

  1. 尝试使用 sudo 命令停止并重新启动 mysqld,sudo service mysqld stop然后sudo service mysqld start
  2. 使用命令检查内存是否足够df -h
  3. 如果这不起作用,请将您的问题粘贴到 mongo.cnf 中。

相关内容