MySQL常见问题解决和自动化安装脚本

在这里插入图片描述
在这里插入图片描述

常见问题

MySQL密码正确但无法登录的情况

这种情况一般都是因为缓存,使用mysql -u root -p123456直到成功登陆为止,并且进入之后重新修改密码,多次重复修改密码的命令并且再一次清除缓存后退出。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;

MySQL安装的GPG密钥问题

前言

在MySQL安装的过程中,我们出现了不能通过YUM安装的MySQL的问题,YUM工具警告说安装包的GPG密钥无效或未安装,这意味着不能验证该包的真实性和完整性。系统尝试从指定的本地路径检索密钥,但没有找到有效的密钥与包匹配。

具体错误
Downloading packages:
warning: /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-client-8.0.36-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a8d3785c: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


The GPG keys listed for the "MySQL 8.0 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.


 Failing package is: mysql-community-client-8.0.36-1.el7.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
解决方式
yum install net-tools -y # 检查和安装网络工具包
yum list installed | grep mysql # 检查已安装的MySQL安装包
rpm -e --nodeps mysql80-community-release-el7-8.noarch # 强制删除指定的MySQL仓库包,不检查依赖。
rm -rf /etc/my.cnf # 删除MySQL的主配置文件。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 导入MySQL的GPG公钥,用于验证软件包。
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm# 安装新的MySQL仓库配置包。
yum -y install mysql-community-server# 安装MySQL服务器及其依赖。

此处出现了GPG的错误,我们需要通过绕过GPG的检查来实现安装

yum -y install mysql-community-server  --nogpgcheck # 忽略GPG密钥检查,重新安装
systemctl start mysqld && systemctl enable mysqld # 启动MySQL服务并设置为开机启动。
systemctl status mysqld # 检查MySQL服务状态,确认服务已经运行
grep 'temporary password' /var/log/mysqld.log # 获取随机密码并登录
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
set global validate_password.policy=0;
ALTER USER USER() IDENTIFIED BY 'wingkin45@A.';
set global validate_password.policy=0;
set global validate_password.length=4;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;

MySQL自动化安装脚本

echo "INFO : BEGIN INSTALLING MYSQL8 ..."
#检查mysql服务版本,若存在Mysql8,直接退出
me=`ps -ef|grep mysqld|wc -l`
if [ $me -eq 2 ];then
        me=`systemctl status mysqld|grep Docs|awk -F: '{print $NF}'`
        if [ $? -eq 0 -a "$me" == "mysql(8)" ];then
                echo "INFO : MYSQL8 FOUND "
                exit 0
        fi

        #若存在旧版本的mysql,且服务处于启动状态
        systemctl status mysqld|grep "active (running)"
        if [ $? -eq 0 ];then
                systemctl stop mysqld
                echo "INFO : OLD MYSQL SERVICE FOUND BUT STOPPED"
        fi
fi
#若存在旧版本的残留,则直接卸载
names=`rpm -qa|grep mysql`
for name in $names;do
        yum -y remove $name 1>/dev/null 2>&1
        echo "INFO : OLD MYSQL RESOURCE [ $name ] FOUND AND REMOVED"
done

#rpm 安装mysql8
src=$1
if [[ ! -e $src || ! -f $src ]];then
        echo "ERROR : PLEASE PROVIDE MYSQL8 RPM FILE "
        exit 1
fi
if [[ ! "$src" =~ mysql8.*\.rpm$ ]];then
        echo "ERROR : RPM PACKAGE OR NOT MYSQL8"
        exit 1
fi

rpm -ivh $src 1>/dev/null 2>&1
if [ $? -eq 0 ];then
        echo "INFO : SUCCESS TO RPM INSTALL MYSQL8"
else
        echo "ERROR : FAIL TO RPM INSTALL MYSQL8"
        exit 2
fi

# yum 安装mysql8服务
yum -y install mysql-community-server --nogpgcheck 1>/dev/null 2>&1
if [ $? -eq 0 ];then
        echo "INFO : SUCCESS TO YUM MYSQL8 SERVICE"
else
        echo "ERROR : FAIL TO YUM MYSQL8 SERVICE"
        exit 3
fi

#检查服务是否已启动,若未启动则启动
me=`systemctl status mysqld|grep "active (running)"`
if [ $? -ne 0 ];then
        systemctl start mysqld
fi
echo "INFO : MYSQL8 SERVICE STARTED"

echo "INFO : FINISH INSTALL MYSQL8"

unset me
unset names
unset src

相关推荐

  1. 常见DNS故障问题解决过程

    2024-04-30 09:44:05       15 阅读
  2. 一些常见MySQL问题答案

    2024-04-30 09:44:05       22 阅读
  3. mysql使用过程常见报错问题解决

    2024-04-30 09:44:05       41 阅读

最近更新

  1. 精通C#编程需要学习哪些常用框架?

    2024-04-30 09:44:05       0 阅读
  2. Redis高可用解决方案哨兵模式与集群模式的比较

    2024-04-30 09:44:05       0 阅读
  3. C#实用的工具类库

    2024-04-30 09:44:05       0 阅读
  4. 4085行代码还原2D我的世界(上)

    2024-04-30 09:44:05       1 阅读
  5. 大数据面试题之GreenPlum(1)

    2024-04-30 09:44:05       2 阅读
  6. 量化机器人能否识别市场机会?

    2024-04-30 09:44:05       1 阅读
  7. 探讨SpringMVC的工作原理

    2024-04-30 09:44:05       1 阅读
  8. CSS布局艺术:掌握水平与垂直对齐的秘诀

    2024-04-30 09:44:05       1 阅读
  9. SQL 游标

    2024-04-30 09:44:05       0 阅读

热门阅读

  1. Verilog学习之时序控制、语句块(1)

    2024-04-30 09:44:05       14 阅读
  2. Caddy实践 | Docker环境下使用Caddy快速部署web服务器

    2024-04-30 09:44:05       12 阅读
  3. memcpy,memmove函数详解

    2024-04-30 09:44:05       17 阅读
  4. 云容器与云中间件

    2024-04-30 09:44:05       12 阅读
  5. onion洋葱模型

    2024-04-30 09:44:05       12 阅读
  6. 程序设计:C语言 UNIX/LINUX 环境变量替换

    2024-04-30 09:44:05       13 阅读
  7. CentOS 7 安装 Puppeteer & Google Chrome

    2024-04-30 09:44:05       11 阅读