CentOS安装MySQL8

卸载原有MySQL:

停止MySQL服务

首先,你需要停止正在运行的MySQL服务。打开终端并执行以下命令:

复制代码
sudo systemctl stop mysqld

查找已安装的MySQL包

在卸载之前,你需要知道哪些MySQL相关的包已经安装在系统上。可以使用以下命令来查找:

复制代码
rpm -qa | grep mysql

卸载MySQL包:

复制代码
sudo rpm -e mysql-community-server
sudo rpm -e mysql-community-client
sudo rpm -e mysql-community-common
sudo rpm -e mysql-community-libs-compat mysql-community-libs

上面的命令会删除所有包含mysql字样的包,--nodeps 参数告诉rpm忽略依赖性,直接卸载。

复制代码
sudo rpm -e --nodeps mysql-community-libs-compat mysql-community-libs

rpm -qa | grep mysql

sudo rpm -e mysql-community-common

查看是否还留存到有:

复制代码
rpm -qa | grep mysql

删除数据和配置文件

卸载MySQL软件包后,原有的数据和配置文件仍然会保留在系统中。根据需要,你可以手动删除这些文件。通常,MySQL的数据目录位于/var/lib/mysql,而配置文件通常在/etc/my.cnf以及/etc/my.cnf.d/。

复制代码
sudo rm -rf /var/lib/mysql
sudo rm /etc/my.cnf
sudo rm -rf /etc/my.cnf.d/

sudo find / -name mysql

清理YUM缓存

最后,清理YUM缓存,确保所有的软件包信息都是最新的。

复制代码
bash sudo yum clean all

安装MySQL8

访问 MySQL 官方下载页面:MySQL :: Download MySQL Yum Repository ,找到适合 CentOS 的 Yum Repository 并下载。或者使用以下命令直接下载:

复制代码
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

如果没有安装wget运行如下命令安装

复制代码
sudo yum install -y wget

添加 MySQL Yum Repository

使用下载的 rpm 包添加仓库:

复制代码
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

这将会在 /etc/yum.repos.d/ 目录下添加 MySQL 的 yum repository。

安装 MySQL 服务器

使用 yum 安装 MySQL:

复制代码
sudo yum install mysql-community-server

这里将出现安装失败的情况

可以尝试手动导入密钥。MySQL 官方提供了 GPG 公钥,可以通过以下命令进行导入

复制代码
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

上面的 URL 中的密钥年份(例如 mysql-2022)可能会随时间而改变,所以请根据实际情况和官方文档更新为正确的密钥 URL。导入新的 GPG 密钥后,再次尝试安装软件包:

复制代码
sudo yum install mysql-community-client-plugins

再次安装M有SQL服务:

复制代码
sudo yum install mysql-community-server

启动 MySQL 服务

复制代码
sudo systemctl start mysqld

并设置 MySQL 服务开机自启:

复制代码
sudo systemctl enable mysqld

查看默认生成的 root 密码

复制代码
grep 'temporary password' /var/log/mysqld.log

使用以下命令登录 MySQL 数据库并输入临时生成的密码:

复制代码
mysql -u root -p

MySQL 8.0 引入了一个密码验证插件,它用来强制实施密码强度策略。如果你想要取消或者降低这个安全权限,你可以调整密码验证策略的配置。

复制代码
SET GLOBAL validate_password.policy = LOW;

降低密码长度的要求

复制代码
#最少可以是4位
SET GLOBAL validate_password.length = 4;

设置新的密码

复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

更新表中连接权限信息可以让外面主机连接

复制代码
update mysql.user set host='%' where user='root';

更新好之后执行刷新操作

复制代码
flush privileges;

在Navicat 中测试连接

相关推荐
虎王物联几秒前
RK3568嵌入式Linux跑Docker:内核配置排查到AIoT容器化的完整路径
linux·运维·docker·rk3568·aiot·嵌入式linux
GeW1 小时前
不只靠技术:RHCE考试的5个隐藏得分点
linux
老当益壮梁奶奶1 小时前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
祖力552 小时前
进程间通信(IPC机制):消息队列与共享内存
linux·消息队列·共享内存·通信·进程间通信
从入门到退休2 小时前
企业远程控制选型:向日葵SDK vs RustDesk自建,谁是更务实的选择?
运维·服务器·网络·远程工作·远程控制
Learn-Share_HY2 小时前
[IT Network]如何配置反向路徑過濾器(rp_filter),以解決路由不對稱問題?
linux·嵌入式硬件·物联网·网络协议·tcp/ip·http·iot
小王C语言4 小时前
Windows 无法使用 ssh 连接虚拟机(ubuntu),网络没问题的情况下
运维·ssh
java_logo4 小时前
Docker 部署 MinIO:轻松搭建 S3 兼容对象存储平台
运维·docker·容器·对象存储·minio·轩辕镜像·minio部署
祖力554 小时前
进程间通信(IPC机制):信号
linux·运维·服务器·进程·进程间通信·多任务·ipc
GKxx4 小时前
在 HarmonyOS 上给 QEMU 搭一个最小 aarch64 Linux guest(内核 + busybox initramfs)
linux·华为·qemu·harmonyos·鸿蒙·鸿蒙pc