Centos 7 yum安装MySQL

资料来源

  • Linux安装MySQL使用yum
  • A Quick Guide to Using the MySQL Yum Repository - 这个是MySQL官方给的文档

安装准备工作

1、下载MySQL Yum Repository(这里我的系统是Centos 7,故选择el7即可)

根据内核中el7,选择这里的el7

2、更换yum国内镜像源

开始安装

  • 如果已经安装过MySQL的用户,又想重新安装,请先看一下文章后面说的MySQL卸载,需要先卸载干净,再来安装。

1、将下载的 MySQL YUM Repository 上传到虚拟机上(我自己是在虚拟机上安装) ,然后使用下面命令,将MySQL的yum源,添加到自己系统的yum源中去

-- mysql80-community-release-el7-5.noarch.rpm注意换成自己的文件名
-- 如果不是root用户,注意使用sudo命令
rpm -Uvh mysql80-community-release-el7-5.noarch.rpm

2、查看yum安装时,启用的mysql版本

  • 命令:yum repolist all | grep mysql
  • 从下图中,我们可以看到,默认启用的是MySQL8.0版(启用:表示接下来yum安装时,就会安装启用的这些项目)
  • 图中几个mysql版本说明一下:目前的安装包名中都有community表示社区版(免费)、MySQL Cluster表示集群版本、MySQL Tools这些是工具


    默认启用的是MySQL8.0

3、切换版MySQL版本(根据自己需求启用相关选项。由于我要安装MySQL8.0,就不禁用,直接安装了)

  • 说明一下:我没有尝试过禁用:MySQL Connectors Commu 和 MySQL Tools Community ,这两个安装选项。
  • 我只启用/禁用过 MySQL 8.0 Community Se / MySQL 5.7 Community Se
  • 故:如果是为了安装数据,按照我这个操作就可以。如果研究,可以自行尝试禁用/启用其他选项试试
# MySQL80禁用
yum-config-manager --disable mysql80-community
# MySQL5.7启用
yum-config-manager --enable mysql57-community

4、使用yum命令MySQL8.0安装:

-- 如果不是root用户,记得sudo
yum install -y mysql-community-server
  • 如果安装出现错误:获取 GPG 密钥失败:[Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022"
  • 解决方案:
    • 执行 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 下载GPG秘钥
    • 使用 yum install -y mysql-community-server --nogpgcheck 命令安装并忽略GPG秘钥检查

5、启动MySQL服务器,并查看mysql启用状态(注意:这里是mysqld,不是mysql)

-- Centos  7 使用systemctl命令,Centos 6用service
systemctl start mysqld

-- 查看mysql服务启用状态(见下图)
systemctl status mysqld
查看mysql启用状态

6、找到MySQL的root用户密码(MySQL8.0需要先启动,否则这个文件不存在)

-- 在mysqld.log文件中,找到root用户初始密码(见下图)
cat /var/log/mysqld.log
找到root密码

7、修改root初始密码(必须修改初始密码,否则无法执行SQL)

-- MySQL8 密码策略:大小写字母+数字+特殊符号
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

8、修改root用户允许远程连接

-- 修改mysql数据库中user表中root用户的host为%,即可支持该用户任意IP地址远程访问
update mysql.user set host='%' where user='root';

9、Centos 7防火墙开启3306端口

# 防火墙开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙,使3306端口开放生效
firewall-cmd --reload

10、设置MySQL开启是否自启动

-- 先查看mysql服务是否已经开机自启动
systemctl list-unit-files | grep mysqld

-- 设置开启自启动 如果将 enable 改为 disable,那么就是关闭开启自启动
systemctl enable mysqld.service

11、解决MySQL8.0使用数据库工具连接2059错误:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded:xxxx

Navicat远程连接报错

  • 执行下面SQL解决
    • 说明:这里的 'root'@'%'% 是root用户的Host值,需要自己查询自己数据库中root用的Host值是什么
-- 这里的 'root'@'%' 的 % 是root用户的 Host值
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
  • 查询root用户的Host值:select * from mysql.user where user='root'\G;
    查看用户的host值

12、根据自己需要,修改数据库密码策略

  • 修改密码策略前,不能使用root初始密码修改。即必须要先修改root初始密码,再来设置密码策略。然后再将root密码设置为简单易记的密码
  • 修改密码策略是 修改MySQL的全局变量值,故MySQL服务重启后,密码策略修改的值就会失效,但是不影响已修改密码的账户
--  查看数据全局变量中密码策略
show variables like 'validate_password%';

--  关闭 密码不允许与用户名相同检查
set global validate_password.check_user_name=0;
-- 设置密码最小长度为4
set global validate_password.length=4;
-- 修改密码策略等级为 低
set global validate_password.policy=LOW;
image.png

13、重置root用户密码为简单密码

  • 如果修改root用户的允许远程连接(即:root@%),那么重置密码时需要使用:ALTER USER 'root'@'%' IDENTIFIED BY '你的密码';
  • 可以使用 select * from mysql.user where user='root'\G; SQL来查看root用户的Host值(见下图)
-- 重新修改root用户密码(默认root用户host为localhost)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

-- 如果设置用户host为 %,那么使用:ALTER USER 'root'@'%' IDENTIFIED BY '你的密码';修改密码
ALTER USER 'root'@'%' IDENTIFIED BY '你的密码';
查看用户的host值

MySQL卸载

1、查看是否安装过MySQL(见下图)

# -i 表示忽略大小写
rpm -qa | grep -i mysql

列出安装的mysql相关包

2、查看MySQL服务是否开启(注意是:mysqld,不是mysql)

  • 见下图,如果是:active(running)表示服务已开启
# 先查看MySQL服务状态
systemctl status mysqld
查看MySQL服务是否已开启

3、关闭MySQL服务

# 关闭MySQL服务命令
systemctl stop mysqld
# 再查看一下状态,确认关闭
systemctl status mysqld
mysql服务已关闭

4、卸载MySQL安装包

  • 使用 yum list installed mysql* 命令,查看yum已安装的mysql相关包
  • 使用 yum remove -y mysql-community-*命令,卸载mysql
#  这里使用的 [*] 通配符
yum remove -y mysql-community-*

5、删除mysql相关文件(注意:该相关文件会删除数据的文件,故需要做好数据库备份)

# 从根目录查找mysql关键的文件
find /-name mysql
# 使用rm -rf 删除上述命令的文件
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm  -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql
删除mysql相关文件

6、删除MySQL的配置文件(my.cnf)和 日志文件

  • 日志文件一定要删除,否则重新安装时,root初始密码不会写进去,那么安装后就不知道root密码
# 配置文件
rm  -rf /etc/my.cnf
# 日志文件(这个日志文件一定要删除,否则重新安装时,root初始密码不会写进去)
rm -rf /var/log/mysqld.log

你可能感兴趣的:(Centos 7 yum安装MySQL)