我正在使用 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-试试这个:
echo -n "/usr/sbin/mysqld" | sudo tee /sys/kernel/security/apparmor/.remove
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
同一个错误可能有很多原因。
- 尝试使用 sudo 命令停止并重新启动 mysqld,
sudo service mysqld stop
然后sudo service mysqld start
。 - 使用命令检查内存是否足够
df -h
。 - 如果这不起作用,请将您的问题粘贴到 mongo.cnf 中。