Linux安装mysql后systemctlstartmysqld.service不能启动。。
。
在安装mysql的时候修改了 /etc/myf 配置⽂件中的datadir的默认路径后,导致使⽤systemctl start mysqld.service命令启动不了:
# 安装后启动mysql服务
[root@localhost mysql]# systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe"for details.
在 /etc/myf 中datadir 和log-error的路径修改为以下
#datadir=/var/lib/mysql
datadir=/data/mysql/data下载mysql为什么下载不了
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
log-error=/data/mysql/log/mysqld.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#log-error=/var/log/mysqld.log
但是总是不能启动服务。即使修改了 /data/mysql/data的所有权为mysql,连⽗⽬录都修改为mysql了,甚⾄连/data及其⼦⽬录都修改为777权限,也不能解决问题。最后发现了⼀篇好⽂章:
这个原因有⼆,其中任意的⼀个原因都会造成你被系统告知这个warning。如果你不是⼀个专业的linux系统安全⼯程师,或者你只是个PHP 程序员,并没有对系统安全有深⼊的研究,你就不会太容易到它的答案。
第⼀,selinux,记得当年念书时,字符界⾯安装redhat(很古⽼的操作系统么。。。)的时候,有这么⼀个选项,通常⼤家都听取前辈的建议,改变默认值以不安装它。但如果你恰好要操作的这台机器开着selinux,它确实能够使你的mysql⽆法在新⽬标位置进⾏
mysql_install_db的操作,并爆出标题所⽰的警告。⼀个简单的解决办法是使⽤命令暂时关闭selinux,以便让你的操作可以继续下去setenforce 0
但最好使⽤⼀个永久⽅法,以便在重启后继续不要这货。
修改/etc/selinux/config⽂件中设置SELINUX=disabled ,然后重启或等待下次重启。
第⼆,apparmor,这个坑爹货和selinux⼀样的坑爹,它也对mysql所能使⽤的⽬录权限做了限制
在 /etc/apparmor.d/sqld 这个⽂件中,有这两⾏,规定了mysql使⽤的数据⽂件路径权限
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
你⼀定看到了,/var/lib/mysql/就是之前mysql安装的数据⽂件默认路径,apparmor控制这⾥mysqld可以使⽤的⽬录的权限
我想把数据⽂件移动到/data/mysql下,那么为了使mysqld可以使⽤/data/mysql这个⽬录,照上⾯那两条,增加下⾯这两条就可以了
/data/mysql/ r,
/data/mysql/** rwk,
重启apparmor,/etc/inid.d/apparmor restart
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论