CentOS7.3下使用YUM安装MySQL5.x和8.x

 

一、MySQL5版本安装

1.1.检查系统中是否已安装 MySQL。

rpm -qa | grep mysql

  查询结果返回空值,则说明没有安装 MySQL 。

  注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。

1.2.查看已安装的 Mariadb 数据库版本。

rpm -qa|grep -i mariadb

 

1.3.卸载已安装的 Mariadb 数据库。

rpm -qa|grep mariadb|xargs rpm -e --nodeps

1.4.再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成。

rpm -qa|grep -i mariadb

1.5.下载安装包文件

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

1.6.安装mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。

执行 yum repolist all | grep mysql 命令查看可用的 mysql 安装文件。

1.6.安装mysql。

yum install mysql-server

注意:这里默认安装的是MySQL5.6,如下安装其他版本如下图:

在 /etc/yum.repos.d/ 目录下修改 mysql-community.repo 

1.7.检查mysql是否安装成功

rpm -qa | grep mysql

1.8.启动 mysql 服务

systemctl start mysqld.service #启动 mysql
systemctl restart mysqld.service #重启 mysql
systemctl stop mysqld.service #停止 mysql
systemctl enable mysqld.service #设置 mysql 开机启动

mysql常用文件路径:

  /etc/my.cnf   这是mysql的主配置文件

  /var/lib/mysql   mysql数据库的数据库文件存放位置

  /var/logs/mysqld.log  数据库的日志输出存放位置

1.9.设置密码

mysql5.6 安装完成后,它的 root 用户的密码默认是空的,我们需要及时用 mysql 的 root 用户登录(第一次直接回车,不用输入密码),并修改密码。

# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("这里输入root用户密码") where User='root';
mysql> flush privileges;

10.设置远程主机登录

mysql> GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password';

执行以下命令,为root 用户添加远程登录的能力。

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";

二、CentOS7.3下安装MySQL8

在CentOS 7中安装MySQL 8.0的详细步骤如下:

2.1.添加MySQL Yum Repository:

首先,您需要添加MySQL官方的Yum存储库。打开终端,执行以下命令:

sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

2.2.安装MySQL Community Server:

2.2.1.安装MySQL

安装MySQL Community Server 8.0版本。执行以下命令:

sudo yum install mysql-community-server

安装的时候会报错,错误日志中错误信息描述的就是验证 GPG 失败

文件中的 GPG 密钥:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql (0x5072E1F5) 已安装
为“MySQL 8.0 Community Server”存储库列出的 GPG 密钥已经安装,但它们对于此包不正确。
检查是否为此存储库配置了正确的密钥 URL。失败的包是:mysql-community-client-8.0.37-1.el8.x86_64

2.2.2. 解决方案

⑴.直接导入新的 GPG key (推荐)

MySQL 的最新 GPG key 放在其官方的仓库地址中: https://repo.mysql.com,从更新日期中可以看到 MySQL 2023年更换过一次,截止到 2024年5月17日,目前最新的还是 2023年更新的。如果以后再遇到此类错误可以去官方仓库地址中看一下,有最新的就直接使用最新的。

# 如果出现上面的报错,需要导入最新的 GPG key 
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

如下图:

⑵.跳过验证 (不推荐)
yum install mysql-community-server -y --nogpgcheck

参数说明:

  • -y:安装中的待确认操作不必询问,默认 yes
  • --nogpgcheck:忽略 gpg 验证。

2.3.启动MySQL服务

安装完成后,启动MySQL服务并设置开机自启动:

sudo systemctl start mysqld
sudo systemctl enable mysqld

2.4.查找初始密码

MySQL安装完成后,初始密码会被保存在日志文件中。使用以下命令查找初始密码:

sudo grep 'temporary password' /var/log/mysqld.log

查看密码

2.5.设置MySQL root密码

登录MySQL并设置root密码。首次登录时需要使用初始密码,然后根据提示修改密码:

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Augus@163.com';

注意:这里的密码需要设置一定的复杂度,密码至少8位且包含大小写字母、数字、特殊字符

⑴.查看密码的复杂度

show variables like 'validate%';

⑵.默认mysql密码需要含有数字、大小写字符、下划线等,这里设置密码验证级别为低即可

set global validate_password.policy=LOW;

⑶.默认mysql密码设置长度是8位,这里修改成6位

set global validate_password.length = 6;

⑷.这里就可以把密码修改的简单一点,设置为123456

alter user 'root'@'localhost' identified by '123456';

说明:

⑴.密码等级分类

MySQL的密码等级分为四个等级:LOW、MEDIUM、HIGH和STRONG。每个等级都有不同的密码要求和安全级别。

  • LOW等级:只要求密码长度不少于4个字符,适用于测试和开发环境,安全性较低。
  • MEDIUM等级:要求密码长度不少于8个字符,并包括至少一个大写字母、一个小写字母、一个数字和一个特殊字符(如$、#、@等),适用于一般生产环境,安全性较高。
  • HIGH等级:要求密码长度不少于8个字符,并包括至少一个大写字母、一个小写字母、一个数字和一个特殊字符,但要求密码不能与用户名或其他常见的字符串相同,适用于较为敏感的生产环境,安全性更高。
  • STRONG等级:要求密码长度不少于12个字符,并包括至少一个大写字母、一个小写字母、一个数字和一个特殊字符,还要求密码不能与用户名或其他常见的字符串相同,适用于高度敏感的生产环境,安全性最高。

⑵.设置密码等级

在MySQL中,可以使用以下命令设置密码等级:

SET GLOBAL validate_password.policy = 1; -- 设置密码策略为MEDIUM
SET GLOBAL validate_password.length = 8; -- 设置密码长度为8
SET GLOBAL validate_password.number_count = 1; -- 设置密码中数字的最小个数为1
SET GLOBAL validate_password.special_char_count = 1; -- 设置密码中特殊字符的最小个数为1

以上命令将密码策略设置为MEDIUM,密码长度设置为8,密码中数字和特殊字符的最小个数都设置为1。可以根据需要调整这些值。

2.6.设置允许MySQL账户远程访问

root账户设置运行远程访问:

mysql> use mysql
Database changed
mysql> select host,user form user;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'user'
 at line 1
mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
4 rows in set (0.00 sec)

果然,发现root用户的访问权限是localhost,需要修改host为%,输入命令:

update user set host='%' where user='root';
flush privileges;

接口如下:

mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
再次查询修改后结果,OK。结果如下:
 
mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
+-----------+------------------+
4 rows in set (0.00 sec)

新增用户(可选)

  • 查看用户表
use mysql
select host, user, authentication_string, plugin from user;

  • 新增用户
//1.创建用户   @'%可以远程访问'
create user 'test'@'%' identified by '123456';
//2.给用户test库的权限
grant all privileges on `test`.* to 'test'@'%';
//刷新权限  可以用远程连接
FLUSH PRIVILEGES;

2.7.配置MySQL安全性(可选)

运行MySQL提供的安全脚本,按照提示进行安全性配置:

sudo mysql_secure_installation

2.8.防火墙设置

如果系统开启了防火墙,需要允许MySQL服务通过防火墙。执行以下命令:

# 开启
service firewalld start
# 开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
posted @ 2020-07-16 18:03  酒剑仙*  阅读(1270)  评论(0编辑  收藏  举报