CentOS7.6安装MySQL数据库(入门篇)

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账户,否则安装服务器时,可能会有报错(此报错影响数据库的启动),如下:
CentOS7.6安装MySQL数据库(入门篇)_第1张图片
添加mysql组和mysql组中用户解决:

# groupadd mysql

此时又有报错(此时虽然已是root权限,依然会报错!):
在这里插入图片描述报错原因是 /etc/gshadow有隐藏权限,此次需要清除它的隐藏权限i。
查看其隐藏权限:

# lsattr /etc/gshadow

在这里插入图片描述
清除其隐藏权限:(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

CentOS7.6安装MySQL数据库(入门篇)_第2张图片
大概等个三分钟左右,安装完毕。
安装完成后就会覆盖掉之前的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用户,就会报错,如下:
在这里插入图片描述
我之前也是没添加用户组和用户(/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

CentOS7.6安装MySQL数据库(入门篇)_第3张图片此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

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

CentOS7.6安装MySQL数据库(入门篇)_第4张图片如下命令进入数据库:

# mysql -u root -p

输入初始密码,进入数据库:
CentOS7.6安装MySQL数据库(入门篇)_第5张图片
修改MySQL默认密码,修改密码:

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

此时会因密码过于简单而报错,如下:
在这里插入图片描述原因是MySQL有密码设置的规范,具体是与validate_password_policy的值有关:
CentOS7.6安装MySQL数据库(入门篇)_第6张图片
MySQL完整的初始密码规则可以通过如下命令查看:(修改密码后才能才看)

mysql> SHOW VARIABLES LIKE 'validate_password%';

CentOS7.6安装MySQL数据库(入门篇)_第7张图片

密码的长度是由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;

CentOS7.6安装MySQL数据库(入门篇)_第8张图片
设置之后就是我上面查出来的那几个值了,此时密码就可以设置的很简单,例如123456之类的。到此数据库的密码设置就完成了。
在这里插入图片描述退出数据库:

mysql> exit

在这里插入图片描述
数据库设置篇,操作完毕!

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

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

# rpm -qa |grep mysql

CentOS7.6安装MySQL数据库(入门篇)_第9张图片
需要把这个卸载掉:
# yum -y remove mysql57-community-release-el7-10.noarch

停止MySQL服务:

# systemctl stop mysqld

Over,终!

你可能感兴趣的:(centos,操作系统,mysql,mysql,big,data,数据库,centos)