Linux系统的CentOS7发行版安装MySQL80

发布于:2025-06-09 ⋅ 阅读:(13) ⋅ 点赞:(0)

文章目录

前言

本篇有两种安装方式大家可以自行选择

  1. Linux命令行内的”应用商店”安装
  2. 使用FinalShell上传到CentOS解压并安装

Linux命令行内的”应用商店”安装

Linux的版本为 CentOS7;

CentOS的安装软件的yum命令

yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法:yum [-y] install | remove | search 软件名称

  1. 选项-y:自动确认,无需手动确认安装或卸载过程
  2. 第二个参数必填 install | remove | search:
    • install:安装
    • remove:卸载
    • search:搜索
  3. 第三个参数软件名:要安装的软件名。

yum命令需要root权限哦,可以su切换到root,或使用sudo提权。
yum命令需要联网

下面通过安装wget软件进行演示

  1. 先去商店搜索有没有wget这个软件。执行指令 sudo yum search wget.如果报Could not retrieve mirrorlist 无法检索镜像列表的错误请看第二步。若没有即可跳过去第三步。
    在这里插入图片描述
  2. 由于官方仓库已停用,​​必须替换为国内镜像源(如阿里云)​​
    • 备份原有配置:sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    • 下载阿里云镜像配置,我这里是​​CentOS 7.8.2003 存档版本​​定制的源:sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-7.8.2003.repo
      在这里插入图片描述
    • ​​清理缓存(这一步一定要操作)sudo yum clean all # 清除旧缓存 若出现以下错误说明修改镜像失败, 要下载阿里云镜像配置,请执行下一步。若正确执行最后一步。
      在这里插入图片描述
    • 上一步由于配置文件无效,YUM 无法识别仓库源,导致 clean all 操作提前终止,​​缓存未被真正清理。我们需要执行cat /etc/yum.repos.d/CentOS-Base.repo # 查看文件内容.若输出信息开头为 <!DOCTYPE html> 说明 文件下载错误,需重新下载。
      在这里插入图片描述
    • 由上一步可知配置文件无效。我们需要执行sudo rm -f /etc/yum.repos.d/CentOS-Base.repo # 强制删除无效文件以上镜像下载失败的原因是:​​直由网络问题引发​​,配置文件污染是网络问题的衍生结果。所以执行以下命令​​直接写入配置文件内容​​。不通过联网下载即可解决。
      sudo tee /etc/yum.repos.d/CentOS-Base.repo << 'EOF'
      [base]
      name=CentOS-7 - Base - mirrors.aliyun.com
      baseurl=https://mirrors.aliyun.com/centos/7/os/$basearch/
      gpgcheck=1
      gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
      
      [updates]
      name=CentOS-7 - Updates - mirrors.aliyun.com
      baseurl=https://mirrors.aliyun.com/centos/7/updates/$basearch/
      gpgcheck=1
      gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
      
      [extras]
      name=CentOS-7 - Extras - mirrors.aliyun.com
      baseurl=https://mirrors.aliyun.com/centos/7/extras/$basearch/
      gpgcheck=1
      gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
      EOF
      
    • ​​验证配置文件格式​:head -n 5 /etc/yum.repos.d/CentOS-Base.repo # 正确输出应显示 [base] 等配置节。若出现一下结果说明成功。
      [base]
      name=CentOS-7 - Base - mirrors.aliyun.com
      baseurl=https://mirrors.aliyun.com/centos/7/os/$basearch/
      gpgcheck=1
      gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
      
    • 重建缓存(这一步一定要操作) sudo yum makecache # 生成新缓存
      在这里插入图片描述
  3. sudo yum [-y] remove wget,通过yum命令卸载wget命令 这里写了-y就不会询问你是否进行下一步建议写一下不然一直问很难受。出现以下结果说明成功,由于中间部分太多我给截取了一部分。
    在这里插入图片描述
    在这里插入图片描述
  4. sudo yum [-y] remove wget:通过yum命令卸载wget命令

安装MySQL

MySQL并不存在我们的yum仓库中。就比如手机自带的应用商店没有市面上所有的软件。所以执行yum install mysql指令安装不了。所以我们需要额外配置远程仓库

1. 配置yum仓库

# 转为管理员权限
su - root # 账号密码和你的开机密码一致。

# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023


# 安装Mysql8.x版本 yum库
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

输入指令yum repolist all查看所有仓库看看是否装上。有下面的几个说明成功。

mysql-connectors-community/x86_64      MySQL Connectors Community    enabled:    279
mysql-tools-community/x86_64           MySQL Tools Community         enabled:    114
mysql80-community/x86_64               MySQL 8.0 Community Server    enabled:    560

在这里插入图片描述

2. 使用yum安装MySQL

# yum安装Mysql
yum -y install mysql-community-server

结尾出现如下说明安装成功
在这里插入图片描述

3. 安装完成后,启动MySQL并配置开机自启动

systemctl start mysqld		# 启动
systemctl enable mysqld		# 开机自启

4. 检查MySQL的运行状态

systemctl status mysqld  # 出现active的字样说明正在运行

在这里插入图片描述

MySQL的配置

主要修改root密码和允许root远程登录

1. 获取MySQL的初始密码

# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述

2. 登录MySQL数据库系统

# 执行
mysql -uroot -p
# 解释
# -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
# -p,表示使用密码登陆

# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库

在这里插入图片描述

3. 修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';	
-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc

Ctrl + d 退出MySQL
然后再次执行mysql -uroot -p
输入刚刚设置的密码。

验证是否登录成功

4. [扩展],配置root的简单密码

我们可以给root设置简单密码,如123456.

请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

set global validate_password.policy=0;		# 密码安全级别低
set global validate_password.length=4;		# 密码长度最低4位即可
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

在这里插入图片描述

Ctrl + d 退出MySQL
然后再次执行mysql -uroot -p
输入刚刚设置的密码123456
验证是否登录成功

想知道更多关于MySQL密码安全等级请进入sql官网的文档去搜索validate_password
在这里插入图片描述
在这里插入图片描述
这里有具体说明
在这里插入图片描述

5. 允许root远程登录,并设置远程登录密码

默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

请注意,允许root远程登录会带来安全风险

# 第一次设置root远程登录,并配置远程密码使用如下SQL命令 
# 这里的百分号是指允许所有电脑访问,我们可以换成一个具体ip地址,说明只允许某一个ip地址访问。
# 比如 create user 'root'@'193.43.56.2'  ... 说明只允许ip为193.43.56.2的电脑访问。
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';	
-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc

# 后续修改远程登录的密码使用如下SQL命令
# 这里的百分号是指允许所有电脑访问,我们可以换成一个具体ip地址,说明只允许某一个ip地址访问。
# 比如 create user 'root'@'193.43.56.2'  ... 说明只允许ip为193.43.56.2的电脑访问。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

6. 并给root用户分配权限

注意:这里的root是MySQL中的用户root。而不是虚拟机中CentOS中管理员身份root。

grant all on *.* to 'root'@'%';
# MySQL 授权语句 GRANT ALL ON *.* TO '你要分配权限的用户名'@'%'; 
# 是用于赋予指定用户对 MySQL 服务器上​​所有数据库和所有表​​的​​全部操作权限​​,
# 并允许该用户从​​任意 IP 地址​​连接数据库。

在这里插入图片描述

7. 退出MySQL控制台页面

# 退出命令
exit

# 或者通过快捷键退出:ctrl + d

8. 检查端口

MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

   netstat -anp | grep 3306

在这里插入图片描述
至此,MySQL就配置完成并可用了,请妥善保存好MySQL的root密码。

9. 通过MySQL的图形化界面管理工具远程连接MySQL

MySQL的图形化界面管理工具有DataGrip,Navicat等等好多。大家根据自己的需要自行链接。
这里我使用的是navicat

  1. 首先在连接前先要对Linux中的MySQL进行配置。打开配置文件。如果你修改后发现没效果,再检查一下是否存在 /etc/my.cnf.d/server.cnf,也要按同样方式改那里。

    # 启用管理员身份
    su -  # 密码是开机密码。
    
    # vi 编辑my.cnf文件  
    vi /etc/my.cnf
    # 让 MySQL 监听所有网络接口:
    # 如果有bind-address。只需要修改bind-address的值
    # 如果没有就加上这个。
    bind-address = 0.0.0.0
    

    在这里插入图片描述

  2. 放行防火墙(firewalld/iptables)和 SELinux

    sudo firewall-cmd --add-service=mysql --permanent
    sudo firewall-cmd --reload
    

    在这里插入图片描述

  3. 获取自己的虚拟机的ip地址。执行命令ifconfig。注意一定要选对ip地址。
    在这里插入图片描述

  4. 使用navicat连接。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

到此结束。

yum安装后进行卸载

1. ​​停止 MySQL 服务​​

sudo systemctl stop mysqld   # 停止服务
sudo systemctl disable mysqld  # 禁用开机自启

2. ​​卸载 MySQL 软件包​

sudo yum remove -y mysql-community-server mysql-community-client mysql-community-common mysql-community-libs

3. ​​删除残留文件与目录​

sudo rm -rf /var/lib/mysql    # 数据目录(重要!先备份数据!)
sudo rm -rf /etc/my.cnf        # 主配置文件
sudo rm -rf /etc/my.cnf.d      # 配置子目录
sudo rm -rf /var/log/mysqld.log  # 日志文件

4. ​​清理依赖和缓存​

sudo yum autoremove -y    # 移除无用依赖
sudo yum clean all        # 清除缓存

5. ​​删除 MySQL 用户和组​

sudo userdel -r mysql     # 删除用户及家目录
sudo groupdel mysql       # 删除用户组

6. ​​移除 MySQL Yum 仓库​​(可选)

sudo yum remove -y mysql80-community-release-el7-*  # 替换为实际仓库包名
sudo rm -rf /etc/yum.repos.d/mysql-community*      # 删除仓库配置文件

7. 验证是否卸载成功​

rpm -qa | grep mysql      # 检查无 MySQL 相关包
mysql --version           # 提示 "command not found"
find / -name "*mysql*"    # 无关键残留文件(如 /etc, /var/lib 下)

使用FinalShell上传到CentOS解压并安装

Linux的版本为 CentOS7;

获取安装包。

  1. 通过我的网盘分享的文件进行安装
    链接: https://pan.baidu.com/s/1nl91XyaAFkSa3njTgsld6Q?pwd=2jfn
    提取码: 2jfn
  2. 安装地址:https://downloads.mysql.com/archives/community/
    在这里插入图片描述

通过FinalShell把MySQL安装包上传到CentOS7

1. 打开终端

在这里插入图片描述

2. 选择上传位置

在这里插入图片描述

3. 查看是否上传成功

输入ll指令,有以下文件说明上传成功。
在这里插入图片描述

安装

1. 创建目录,并解压

mkdir mysql
tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql

2. 安装mysql的安装包

cd mysql

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

rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm 

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

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

yum install openssl-devel

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

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

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

3. 启动MySQL服务

systemctl start mysqld
systemctl restart mysqld
systemctl stop mysqld

4. 查询自动生成的root用户密码

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

命令行执行指令 :

mysql -u root -p

然后输入上述查询到的自动生成的密码, 完成登录 .

5. 修改root用户密码

登录到MySQL之后,需要将自动生成的不便记忆的密码修改了,修改成自己熟悉的便于记忆的密码。

ALTER  USER  'root'@'localhost'  IDENTIFIED BY '1234';

执行上述的SQL会报错,原因是因为设置的密码太简单,密码复杂度不够。我们可以设置密码的复杂度为简单类型,密码长度为4。

set global validate_password.policy = 0;
set global validate_password.length = 4;

降低密码的校验规则之后,再次执行上述修改密码的指令。

6. 创建用户

默认的root用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个root账户,用户远程访问

create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';

7. 并给数据库的root分配权限

注意:这里的root是MySQL中的用户root。而不是虚拟机中CentOS中管理员身份root。

grant all on *.* to 'root'@'%';
# MySQL 授权语句 GRANT ALL ON *.* TO '你要分配权限的用户名'@'%'; 
# 是用于赋予指定用户对 MySQL 服务器上​​所有数据库和所有表​​的​​全部操作权限​​,
# 并允许该用户从​​任意 IP 地址​​连接数据库。

在这里插入图片描述

8. 重新连接MySQL

mysql -u root -p

然后输入密码

9. 通过MySQL的图形化界面管理工具远程连接MySQL

MySQL的图形化界面管理工具有DataGrip,Navicat等等好多。大家根据自己的需要自行链接。
这里我使用的是navicat

  1. 首先在连接前先要对Linux中的MySQL进行配置。打开配置文件。如果你修改后发现没效果,再检查一下是否存在 /etc/my.cnf.d/server.cnf,也要按同样方式改那里。

    # 启用管理员身份
    su -  # 密码是开机密码。
    
    # vi 编辑my.cnf文件  
    vi /etc/my.cnf
    # 让 MySQL 监听所有网络接口:
    # 如果有bind-address。只需要修改bind-address的值
    # 如果没有就加上这个。
    bind-address = 0.0.0.0
    

    在这里插入图片描述

  2. 放行防火墙(firewalld/iptables)和 SELinux

    sudo firewall-cmd --add-service=mysql --permanent
    sudo firewall-cmd --reload
    

    在这里插入图片描述

  3. 获取自己的虚拟机的ip地址。执行命令ifconfig。注意一定要选对ip地址。
    在这里插入图片描述

  4. 使用navicat连接。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

到此结束。

安装包方式安装后进行卸载

1. 停止MySQL服务

systemctl stop mysqld

2. 查询MySQL的安装文件

rpm -qa | grep -i mysql

在这里插入图片描述

3. 卸载上述查询出来的所有的MySQL安装包

rpm -e mysql-community-client-plugins-8.0.26-1.el7.x86_64 --nodeps

rpm -e mysql-community-server-8.0.26-1.el7.x86_64 --nodeps

rpm -e mysql-community-common-8.0.26-1.el7.x86_64 --nodeps

rpm -e mysql-community-libs-8.0.26-1.el7.x86_64 --nodeps

rpm -e mysql-community-client-8.0.26-1.el7.x86_64 --nodeps

rpm -e mysql-community-libs-compat-8.0.26-1.el7.x86_64 --nodeps

4. 删除MySQL的数据存放目录

rm -rf /var/lib/mysql/

5. 删除MySQL的配置文件备份

rm -rf /etc/my.cnf.rpmsave

网站公告

今日签到

点亮在社区的每一天
去签到