记一次yum安装mysql出现的问题

参考官方文档:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

添加mysql yum源

系统yum库中不存在mysql对应得yum源,去官方地址中下载对应系统的rpm包
地址如下:https://dev.mysql.com/downloads/repo/yum/
执行 sudo rpm -Uvh platform-and-version-specific-package-name.rpm
此后可通关rpm list | grep mysql即可找到对应的安装
在这里插入图片描述

mysql-client 与 mysl-server

客户端:
mysql-client软件包允许您连接到MySQL服务器。它将为您提供“ mysql”命令行程序。
服务器:
mysql-server软件包允许运行一个MySQL服务器,该服务器可以托管多个数据库并处理这些数据库上的查询。
如果只需要连接到远程服务器并运行查询,则仅安装mysql-client。如果您需要托管数据库,请安装客户端和服务器。
注意:
使用yum安装会自动检查并安装依赖,安装mysql-server会自动安装对应版本的client
安装过程中发现,安装mysql-server会自动

安装报错

执行 yum install mysql-community-server.x86_64
报错信息:
GPG key retrieval failed: [Errno 14] curl#37 - “Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022”
这是因为在你的 /etc/yum.repos.d 目录下有关于yum repository的配置文件中列有如下的GPG key:
在这里插入图片描述
查看mysql相关文件内容,发现里面指定了gpgkey文件
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
这个配置告诉YUM,这个repository的GPG key存在于磁盘上。而当YUM在路径 /etc/pki/rpm-gpg 下找不到这个GPG key的时候,就会报如上的错误了。
解决方案:
搜索关键字RPM-GPG-KEY-mysql-2022
在这里插入图片描述
得到如下地址https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
执行如下命令:

cd /etc/pki/rpm-gpg
sudo wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

可能还会缺少RPM-GPG-KEY-mysql,同样的解决方式
最后结果如下
在这里插入图片描述

后续

以下内容参考文章https://blog.youkuaiyun.com/qq_38907313/article/details/123574181,文章非常详细,这里简化部分内容作为记录

开启服务

systemctl start mysqld
systemctl status mysqld

登录

mysql -u root -p
mysql服务第一次启动的时候,会默认创建一个“超管账户”——‘root’@‘localhost’——就是本地使用root账号登录。
这个账号的默认密码会存在日志里。通过以下命令取出。
sudo grep ‘temporary password’ /var/log/mysqld.log

改密

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘MyNewPass4!’;
在这里插入图片描述
mysql有一个密码验证插件,你的密码需要至少一个大写,一个小写,一个数字,一个特殊字符,长度至少8位。

创建远程访问用户
#建用户
create user 'root'@'%' identified with mysql_native_password by 'Mika_1234';
#赋权限
grant all privileges on *.* to 'root'@'%' with grant option;
#刷新用户权限
flush privileges;

超管账号那个root@localhost用户只能本地登录,这里创建的用户把超管后面的localhost换成了%,就是可以从任意地址访问的一个用户。

防火墙开端口

开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新载入
firewall-cmd --reload

修改编码

vim /etc/my.cnf
添加如下配置:
character_set_server=utf8
init_connect=‘SET NAMES utf8’
发现此配置文件是只读,因为此操作并非不一定要改,而且
show variables like ‘%character%’;
查询后默认编码是utf8mb4,优于utf8,就更懒得动了
关于编码这块,可以简单了解以下:
mysql使用utf8mb4经验吐血总结
https://blog.youkuaiyun.com/qq_17555933/article/details/101445526
记住:永远不要在MySQL中使用“utf8”,请使用“utf8mb4”
https://zhuanlan.zhihu.com/p/73402380

<think>首先,用户的问题是通过yum安装MySQL并更新root用户的密码。我手上有几个引用,包括安装方法、切换版本的命令、默认密码的处理等。关键步骤:1.准备环境:确保CentOS上启用正确的MySQL仓库(例如启用MySQL5.7或8.0)。2.使用yum安装安装MySQL服务器和客户端。3.启动MySQL服务:安装后启动服务并设置开机启动。4.查找默认密码:MySQL安装后会生成一个临时root密码。5.更新root密码:用默认密码登录后,使用SQL命令更改密码。用户想要安装和更新密码的过程,所以我需要提供一个清晰的步骤指南。回顾引用:-[^1]提到通过yum安装MySQL8,查看默认root密码的方法。它描述了登录MySQL后设置密码的策略(如validate_password_length)和更新密码。-[^2]提到在Linux虚拟机上安装MySQL和修改密码的常见方法,包括了切换MySQL版本的方法。-[^3]指出在CentOS7中直接yuminstall可能不行,因为默认仓库不包含MySQL社区版,需要先添加仓库。-[^4]描述了安装前的准备,如检查现有MySQL相关包,提到了安装MySQL8或5.7。-[^5]提到如果没有临时密码可能出现登录被拒绝的问题。用户上一次问题没有提供,系统指令说"参考用户上一次问题和你的回答",但这里显示用户首次提到这个问题,所以从这些引用出发。结构化回答:1.先处理安装MySQL-添加MySQL仓库:因为默认CentOS仓库不包含(如[^3]提到的)。-启用所需的版本(如5.7或8.0),参考[^2]的切换命令。2.安装MySQL服务器。3.启动服务。4.处理默认密码:查找临时密码(通常在日志文件中),参考[^1]和[^4]。5.更新root密码:登录MySQL后使用`ALTERUSER`语句修改密码。可能的命令序列:-安装仓库:下载MySQLrpm包并安装,启用yum仓库。-安装:`yuminstallmysql-community-server`-启动服务:`systemctlstartmysqld`-查看临时密码:`grep'temporarypassword'/var/log/mysqld.log`-登录:`mysql-uroot-p`(输入临时密码)-更新密码:`ALTERUSER'root'@'localhost'IDENTIFIEDBY'new_password';`考虑版本:-MySQL5.7默认有validate_password插件,密码策略可能要求复杂密码。-MySQL8.0类似。-[^1]中提到设置密码长度,如`setglobalvalidate_password.length=4;`来放宽策略。回答结构:-使用中文,清晰步骤。-结尾自然添加引用标识。-按系统指令,生成相关问题。完整回答大纲:1.介绍:解释如何通过yum安装MySQL并更新root密码。2.步骤:-添加MySQLYum仓库:下载并安装合适的rpm包。-启用所需版本:如果使用5.7或8.0。-安装MySQL服务器-启动MySQL服务。-查找默认root密码。-登录MySQL-更改root密码。-可选:设置更宽松的密码策略(如需要)。3.结尾:总结,确保密码安全。4.添加引用标识:基于提供的引用。5.生成相关问题。确保真实可靠:-从引用中提取关键点。-使用标准命令。添加引用:-在相关部分末尾添加[^1],[^2]等,如当提到查看默认密码时引用[^1]。相关问题-类似示例中的格式。-例如:如何添加MySQL仓库?如何处理忘root密码?如何在CentOS上安装不同版本MySQL?现在,制定回答。</think> ### 如何使用 yum 安装 MySQL 并更新 root 用户密码 以下是针对 CentOS 系统(如 CentOS 7 或 8)的完整步骤指南。MySQL安装后会生成一个临时 root 密码,您需要通过该密码登录并更新密码。安装过程基于 CentOS 的 YUM 包管理器,并参考了您的引用来确保准确性。安装前请确保系统环境干净(如通过 `rpm -qa | grep mariadb` 检查是否存在冲突的 MariaDB 包[^4])。 #### 步骤 1: 添加 MySQL Yum 仓库 在 CentOS 默认仓库中不包含 MySQL 社区版,因此需要先添加官方 MySQL 仓库[^3]。如果您需要特定版本(如 MySQL 5.7 或 8.0),可选择启用相应的仓库。这里以 MySQL 8.0 为例,切换到 MySQL 5.7 的命令也会说明。 ```bash # 下载 MySQL Yum 仓库 RPM 包(MySQL 8.0) wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm # 安装仓库 sudo yum localinstall mysql80-community-release-el7-7.noarch.rpm # 如需要切换到 MySQL 5.7(参考[^2]) sudo yum-config-manager --disable mysql80-community # 禁用 8.0 sudo yum-config-manager --enable mysql57-community # 启用 5.7 ``` - **注意**:在 CentOS 8 中,替换命令中的 `el7` 为 `el8`。 - 验证仓库:`yum repolist enabled | grep mysql`,确保正确启用所需版本[^2][^4]。 #### 步骤 2: 安装 MySQL 服务器 使用 YUM 安装 MySQL 服务器和客户端。安装后默认会启动 MySQL 服务。 ```bash sudo yum install -y mysql-community-server sudo systemctl start mysqld # 启动 MySQL 服务 sudo systemctl enable mysqld # 设置开机启动 sudo systemctl status mysqld # 检查服务状态(应显示 active) ``` #### 步骤 3: 查找默认 root 密码 MySQL 首次安装后会生成一个临时 root 密码,存储在日志文件中。使用 `grep` 命令查看。 ```bash # 查找临时密码(通常在 /var/log/mysqld.log 中) sudo grep 'temporary password' /var/log/mysqld.log ``` 输出类似:`[Note] A temporary password is generated for root@localhost: random_password`[^1][^5]。录下临时密码(如 `random_password`)。 #### 步骤 4: 登录 MySQL 并更新 root 密码 使用临时密码登录 MySQL,然后执行 SQL 命令更新密码。MySQL 默认启用密码策略验证(`validate_password`),可能需要临时调整策略(如设置密码长度为 4)来简化密码设置[^1]。 ```bash # 登录 MySQL(输入上一步获得的临时密码) mysql -u root -p ``` 在 MySQL 命令行中: ```sql -- 可选:调整密码策略(如果您想使用简单密码,例如测试环境) SET GLOBAL validate_password.length = 4; # 设置密码最小长度为4 SET GLOBAL validate_password.policy = LOW; # 降低策略复杂度 -- 更新 root 用户密码(替换 'new_password' 为您的新密码) ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; -- 刷新权限 FLUSH PRIVILEGES; -- 退出 EXIT; ``` - **重要**:在实际生产环境中,请选择强密码并避免降低策略复杂度,以增强安全性[^1][^5]。如果不调整策略,密码需包含大小写字母、数字和符号(默认要求)。 #### 步骤 5: 验证新密码 退出后使用新密码重新登录,确认密码已更新。 ```bash mysql -u root -p # 输入新密码 # 如果登录成功,显示 "mysql>" ``` #### 常见问题处理 - **如果登录被拒绝**:确保临时密码输入正确;如忘临时密码,可参考 [如何重置 MySQL root 密码](#相关问题) 的步骤修复[^5]。 - **版本兼容问题**:CentOS 7 或 8 上如果安装失败,检查仓库是否启用正确(参考步骤 1),或切换到社区源[^2][^3]。 - **卸载旧包**:安装前移除所有残留包(如 `sudo yum remove mariadb-*`)以避免冲突[^4]。 通过以上步骤,您可以在 CentOS 系统上使用 YUM 轻松安装 MySQL 并更新 root 密码。得将 `new_password` 替换为安全且易的密码,并在生产环境中使用复杂的策略。 [^1]: 本步骤中查看默认密码和调整密码策略的方法参考了 CentOS 7/8 安装 MySQL 8 时的实践。 [^2]: 启用/禁用特定版本 MySQL 仓库的命令基于 CentOS 切换版本的需求。 [^3]: 添加仓库的说明来源于 CentOS 默认仓库不支持 MySQL 社区版的常见问题。 [^4]: 检查并卸载冲突包的建议来自于 CentOS 下安装前的清理步骤。 [^5]: 处理登录被拒问题的方法参考了临时密码获取失败时的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值