Centos安装Mysql报错问题解决
前言
最近在Centos中安装Mysql时遇到一些小问题,在这里进行一个记录。
情况如图:
当你已经显示了这个错误请你重新安装mysql,卸载命令共三条如下:
- yum remove mysql mysql-server mysql-libs compat-mysql51
- rm -rf /var/lib/mysql
- rm /etc/my.cnf
一、为什么会报错?
主要是因为SELinux 的 3 种工作模式其中的一种
模式分别是 :
- Disabled 工作模式
- Permissive 工作模式
- Enforcing 工作模式
它们的具体介绍如下:
1、Disabled工作模式(关闭模式)
在 Disable 模式中,SELinux 被关闭,使用 DAC 访问控制方式。该模式对于那些不需要增强安全性的环境来说是非常有用的。
注意,在禁用 SELinux 之前,需要考虑一下是否可能会在系统上再次使用SELinux,如果决定以后将其设置为Enforcing或Permissive,那么当下次重启系统时,系统将会通过一个自动SELinux文件重新进行标记。
关闭 SELinux 的方式,只需要编辑配置文件 /etc/seLinux/config,并将文本中“SELINUX=”更改为“SELINUX=disabled”即可,重新启动系统之后,SELinux 就被禁用了。
2、 Permissive工作模式(宽容模式)
在 Permissive 模式中,SELinux 被启用,但安全策略规则并没有被强制执行。当安全策略规则应该拒绝访问时,访问仍然被允许。这时会向日志文件发送一条该访问应该被拒绝的消息。
SELinux Permissive 模式主要用于审核当前的 SELinux 策略规则;它还能用于测试新应用程序,将 SELinux 策略规则应用到程序时会有什么效果;以及用于解决某一特定服务或应用程序在 SELinux 下不再正常工作的故障。
3、Enforcing工作模式(强制模式)俗称恶心小白模式
在 Enforcing 模式中,SELinux 被启动,并强制执行所有的安全策略规则。
所以很容易理解,当SELinux启动的是Enforcing模式时,很多的应用无法安装,原因便找到了。
二、解决问题
1.进入root用户调整SELinux模式
所有流程:
利用su命令切换到root用户:su root (密码便是你自己设置的密码)
切换到目录/etc/selinux/底下,vim config 对配置文件进行修改
将SELINUX=enforcing改为SELINUX=disable
修改前:
修改流程
1、将目录切换到/etc/selinux/底下(cd /etc/selinux)
2、修改配置文件config(vim config)
3、在键盘上点击“i”,进行左下角出现INSERT便可以用方向键移动到指定位置进行输入输入,将SELINUX=enforcing改为SELINUX=Disabled,改完后按下Esc建,再分别按下“Shift”+“:“ 左下角便有引号,输入”wq“再回车便可保存
2.安装Mysql
安装顺序
下载MySQL安装包:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
安装软件包的源
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
安装mysql
yum install mysql-community-server
启动mysql(一般问题出在这里)
systemctl start mysqld
成功启动查看命令:systemctl status mysqld
3.登录mysql修改mysql密码
登录mysql修改mysql密码:
1、查看root临时密码进行登录:
sudo grep ‘temporary password’ /var/log/mysqld.log
查看到密码后进行登录,如图我的账户是:root 临时密码是:akH)sEzfj7Fh
2、登录数据库命令
- mysql -u root -p
输入命令后输入你的临时密码
修改密码,在命令中输入修改语句 “ ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘1a9A9@8!’; ” (注意BY后面单引号内是你的密码,这里默认是需要用强密码,大小写+数字或特殊符号一类的密码,如需要修改为简单的密码接着往下看)
修改成功:
如果需要修改为简单的密码:
1、设置密码的验证强度等级
输入设值语句 “ set global validate_password_policy=LOW; ”
2、设置为 6 位的密码
输入设值语句 “ set global validate_password_length=6; ”
3、查看 mysql 初始的密码策略
输入语句 “ SHOW VARIABLES LIKE ‘validate_password%’; ”
4、现在便可以设置简单密码了,满足六位长度即可,
例如输入修改语句
“ ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’; ”
总结
细心观察报错信息