CentOS中有默认安装的MariaDB,它是MySQL的分支,如果要在系统中安装MySQL,当安装完成之后可以直接覆盖掉MariaDB。

一、 MyAQL安装前的准备

查看MariaDB数据库

# rpm -qa|grep mariadb
或
# yum list installed | grep mariadb

查看系统原先是否有MySQL

# rpm -qa |grep mysql

如果有,想要重新安装的话,需要卸载掉原先的MySQL:
以下面要即将安装的mysql为例:

# yum -y remove mysql57-community-release-el7-10.noarch.rpm	//安装时以yum install 安装,卸载时就可以以 yum remove 卸载
或者结合下面命令卸载:
 # rpm -e mysql软件包名	//普通卸载
 # rpm -e --nodeps mysql软件包名	//有依赖包时的强制卸载

二、MySQL的安装

下载并安装MySQL官方的 Yum Repository
以root权限去进行安装操作。

# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的丫子,然后就可以直接yum安装了。

# yum -y install mysql57-community-release-el7-10.noarch.rpm

注意: 此时需要保证有mysql组和mysql账户,否则安装服务器时,可能会有报错(此报错影响数据库的启动),如下:

centos查看mysql安装成功 centos查看安装的数据库_big data


添加mysql组和mysql组中用户解决:

# groupadd mysql

此时又有报错(此时虽然已是root权限,依然会报错!):

centos查看mysql安装成功 centos查看安装的数据库_centos_02

报错原因是 /etc/gshadow有隐藏权限,此次需要清除它的隐藏权限i。

查看其隐藏权限:

# lsattr /etc/gshadow

centos查看mysql安装成功 centos查看安装的数据库_centos查看mysql安装成功_03


清除其隐藏权限:(chattr +i 未添加隐藏权限)

# chattr -i /etc/gshadow

相应的清除其修改用户的隐藏权限:

# chattr -i /etc/shadow

添加mysql组和mysql组中mysql用户:

# groupadd mysql
# useradd mysql -g mysql

之后就可以安心开始安装MySQL服务器了:

# yum -y install mysql-community-server

centos查看mysql安装成功 centos查看安装的数据库_mysql_04


大概等个三分钟左右,安装完毕。

安装完成后就会覆盖掉之前的mariaDB。

至此MySQL就安装完成了,然后是对MySQL的一些设置。

------在这之前,我们来看一下第二种安装MySQL的方法即离线安装MySQL的方法------↓------

三、番外之解压安装MySQL

离线安装MySQL
删除原有的mariadb,不然mysql装不进去

rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
rpm -qa|grep mariadb

在 https://dev.mysql.com/downloads/mysql/ 选择为Red Hat Enterprise Linux 7 / Oracle Linux 7 ,把os的版本选择为all
直接下载mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar,所有的rpm包都在里面

tar -xvf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar

解压后所有的rpm包都在里面,按如下顺序依次安装

rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-devel-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm

OK,离线安装mysql5.7所有文件安装完毕。

之后,对MySQL的一些设置。

四、MySQL数据库的初步设置

首先启动MySQL
启动MySQL服务:

# systemctl start  mysqld.service
或
# systemctl start  mysqld

# systemctl enable mysqld  开机启动

注: 启动MySQL时如果之前安装服务器时没有添加mysql组和mysql用户,就会报错,如下:

centos查看mysql安装成功 centos查看安装的数据库_mysql_05


我之前也是没添加用户组和用户(/var/lib/mysql 文件目录下是空的,应该是刚装数据库的原因),找度娘的解决办法:

修改文件目录权限,然而并没有额卵用,如下:

setenforce 0		//用来解决 [InnoDB] Operating system error number 13 in a file operation. 的问题
chown -R mysql:mysql /var/lib/mysql
chmod -R 777 /var/lib/mysql		//目录权限必须设置成 777,只设置成 755 也会出错
systemctl start mysqld.service

查看进程
ps -ef |grep mysql
查看权限

cd /var/lib/mysql
ll        	//双小写	LL

安装服务器前之前添加用户组和用户,就不会有这个报错!!

继续往下进行:
查看MySQL服务的状态:
查看MySQL服务运行状态,运行状态如图:

systemctl status mysqld.service

centos查看mysql安装成功 centos查看安装的数据库_centos_06

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

# grep "password" /var/log/mysqld.log

centos查看mysql安装成功 centos查看安装的数据库_centos_07

如下命令进入数据库:

# mysql -u root -p

输入初始密码,进入数据库:

centos查看mysql安装成功 centos查看安装的数据库_mysql_08


修改MySQL默认密码,修改密码:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

此时会因密码过于简单而报错,如下:

centos查看mysql安装成功 centos查看安装的数据库_centos查看mysql安装成功_09

原因是MySQL有密码设置的规范,具体是与validate_password_policy的值有关:

centos查看mysql安装成功 centos查看安装的数据库_mysql_10


MySQL完整的初始密码规则可以通过如下命令查看:(修改密码后才能才看)

mysql> SHOW VARIABLES LIKE 'validate_password%';

centos查看mysql安装成功 centos查看安装的数据库_mysql_11

密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

我已经修改过密码。
初始情况下第一个的值是ON,validate_password_length是8。可以通过如下命令修改:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

centos查看mysql安装成功 centos查看安装的数据库_mysql_12


设置之后就是我上面查出来的那几个值了,此时密码就可以设置的很简单,例如123456之类的。到此数据库的密码设置就完成了。

centos查看mysql安装成功 centos查看安装的数据库_数据库_13

退出数据库:

mysql> exit

centos查看mysql安装成功 centos查看安装的数据库_数据库_14


数据库设置篇,操作完毕!

注意:
但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新。

此时,查看已安装的mysql软件包:

# rpm -qa |grep mysql

centos查看mysql安装成功 centos查看安装的数据库_数据库_15


需要把这个卸载掉:

# yum -y remove mysql57-community-release-el7-10.noarch

停止MySQL服务:

# systemctl stop mysqld

Over,终!