文章目录
前言
本篇有两种安装方式大家可以自行选择
- Linux命令行内的”应用商店”安装
- 使用FinalShell上传到CentOS解压并安装
Linux命令行内的”应用商店”安装
Linux的版本为 CentOS7;
CentOS的安装软件的yum命令
yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法:yum [-y] install | remove | search 软件名称
- 选项-y:自动确认,无需手动确认安装或卸载过程
- 第二个参数必填 install | remove | search:
- install:安装
- remove:卸载
- search:搜索
- 第三个参数软件名:要安装的软件名。
yum命令需要root权限哦,可以su切换到root,或使用sudo提权。
yum命令需要联网
下面通过安装wget
软件进行演示
- 先去商店搜索有没有
wget
这个软件。执行指令sudo yum search wget
.如果报Could not retrieve mirrorlist 无法检索镜像列表
的错误请看第二步。若没有即可跳过去第三步。
- 由于官方仓库已停用,必须替换为国内镜像源(如阿里云)
- 备份原有配置:
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 # 生成新缓存
- 备份原有配置:
sudo yum [-y] remove wget
,通过yum命令卸载wget命令 这里写了-y
就不会询问你是否进行下一步建议写一下不然一直问很难受。出现以下结果说明成功,由于中间部分太多我给截取了一部分。
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
首先在连接前先要对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
放行防火墙(firewalld/iptables)和 SELinux
sudo firewall-cmd --add-service=mysql --permanent sudo firewall-cmd --reload
获取自己的虚拟机的ip地址。执行命令
ifconfig
。注意一定要选对ip地址。
使用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;
获取安装包。
- 通过我的网盘分享的文件进行安装
链接: https://pan.baidu.com/s/1nl91XyaAFkSa3njTgsld6Q?pwd=2jfn
提取码: 2jfn - 安装地址: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
首先在连接前先要对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
放行防火墙(firewalld/iptables)和 SELinux
sudo firewall-cmd --add-service=mysql --permanent sudo firewall-cmd --reload
获取自己的虚拟机的ip地址。执行命令
ifconfig
。注意一定要选对ip地址。
使用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