先交代一个背景
我的系统 ubuntu 16.04
使用 root 命令登录后, 然后使用 service mysql start 启动mysql, 启动失败.
那么我就去看日志文件.
首先我要去查日志文件在哪里, 所以我就 使用 mysqld --help --verbose | less 命令去看配置文件放在哪里. (这些命令不懂什么意思请去搜索一下)
然后我发现 我这个帮助文件里 说明了配置文件的位置 /etc/mysql/my.cnf, 然后经过顺藤摸瓜, 我找到了日志的位置.
我发现日志的错误是:
日志:
59261 2019-02-24T00:37:54.085746Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/lib/mysqldir/mysqld.pid' (Errcode: 13 - Permission denied)
59262 2019-02-24T00:37:54.085786Z 0 [ERROR] Can't start server: can't create PID file: Permission denied
而配置:
user = mysql
pid-file = /var/lib/mysqldir/mysqld.pid
对饮文件夹/var/lib/mysqldir 权限:
drwxr-xr-x 2 mysql mysql 4.0K Feb 23 19:33 mysqldir
百思不得其解, 我看了好多博文, 都说什么权限改一下就好了, 尼玛我权限没问题啊, 于是我又找啊找, 找了好久也没找到合适的, 于是我又认真阅读了一下报错提示, 是 errCode 13
终于发现了一篇博文,
https://www.linuxidc.com/Linux/2012-02/55533.htm
解决办法
我明白了, 原来是 ubuntu下面的 AppArmor在作怪啊, 我就进入其针对mysqld的配置文件, 使用 vim /etc/apparmor.d/usr.sbin.mysqld 然后查看了这个文件针对 mysqld的配置, 修改了 myql里面的配置PID的目录, 果然一下子成功了!!
非常的喜悦啊, 这个东西困扰了我好久, 终于给他找到答案了!!!!