MySQL 免密登录的几种配置方式

文章目录

  • MySQL 免密登录的几种配置方式
  • 使用操作系统用户实现免密登录
    • 具体步骤:
    • Step 1: 修改 MySQL 配置文件
    • Step 2: 重启 MySQL 服务
    • Step 3: 使用系统用户登录 MySQL
    • 优点:
    • 缺点:
  • 使用 `mysql_config_editor` 配置免密文件
    • 具体步骤:
    • Step 1: 设置免密文件
    • Step 2: 使用免密文件登录 MySQL
    • 优点:
    • 缺点:
  • MySQL 用户授权配置免密登录
    • 具体步骤:
      • Step 1: 登录 MySQL
    • Step 2: 修改用户的认证方式
    • Step 3: 刷新权限
    • Step 4: 免密码登录
    • 优点:
    • 缺点:
  • 通过设置client标签
    • 缺点
    • ~/.my.cnf
  • 几种种方式的对比与应用场景
    • 总结


MySQL 免密登录的几种配置方式

在日常运维中,为了简化登录操作或提高自动化脚本执行的效率,我们经常需要配置 MySQL 免密登录。MySQL 支持通过多种方式实现免密登录,这样我们就可以避免每次输入密码。常见的三种免密登录配置方式是:

  • 使用操作系统用户登录
  • 配置免密文件(通过 mysql_config_editor
  • 通过 MySQL 用户授权配置免密登录
  • 通过设置client标签

本文将深入探讨这三种方法,并详细介绍它们的实现步骤和适用场景。


使用操作系统用户实现免密登录

MySQL 支持通过操作系统用户来直接登录,无需输入密码。这种方式适用于服务器上的自动化任务或定时脚本执行,方便操作。

具体步骤:

Step 1: 修改 MySQL 配置文件

找到 MySQL 的配置文件(通常位于 /etc/my.cnf/etc/mysql/my.cnf),在 [mysqld] 部分添加如下配置:

[mysqld]
skip-grant-tables

此配置项会让 MySQL 跳过权限表的校验,所有用户都无需密码即可登录。

Step 2: 重启 MySQL 服务

使用以下命令重启 MySQL 服务以使配置生效:

systemctl restart mysqld

Step 3: 使用系统用户登录 MySQL

此时可以直接使用系统用户(例如 root)登录 MySQL,而无需输入密码:

mysql -u root

注意
这种方式有一定的安全隐患,因为它完全跳过了 MySQL 的权限系统,任何有权限访问 MySQL 服务器的用户都可以登录并操作数据库。因此,这种方式应仅在调试或特殊场景下使用,且必须确保服务器的安全性,例如通过防火墙和访问控制限制外部访问。

优点:

  • 简单快捷,适合临时维护或本地调试。

缺点:

  • 安全性较低,所有用户都能绕过权限验证登录数据库。

这种也适用于忘记密码时候,配置后登陆服务器再修改密码,修改完再把配置注释即可


使用 mysql_config_editor 配置免密文件

MySQL 提供了一个非常安全的工具 mysql_config_editor,可以将登录信息加密存储在一个文件中,避免密码泄露。这样每次登录时无需手动输入密码,同时又保证了密码的安全性。

具体步骤:

Step 1: 设置免密文件

使用 mysql_config_editor 命令创建一个免密配置文件:

mysql_config_editor set --login-path=client --user=root --host=localhost --password

在执行该命令后,会提示你输入密码。密码将被加密存储在 ~/.mylogin.cnf 文件中。此文件是用户级别的,其他用户无法访问。

Step 2: 使用免密文件登录 MySQL

配置完成后,可以通过以下命令直接登录 MySQL,而无需手动输入密码:

mysql --login-path=client

优点:

  • 安全性高:密码以加密形式存储,避免了明文泄露的风险。
  • 易用性强:登录时无需每次输入密码,特别适合自动化脚本或定时任务。

缺点:

  • 适用性有限:只适用于在本地或特定路径下配置了 mysql_config_editor 的用户,其他用户无法使用同一个免密文件。

MySQL 用户授权配置免密登录

MySQL 还可以通过直接修改用户权限的方式来实现免密登录。通过这种方式,你可以灵活地为某个特定用户配置免密登录,同时保留其他用户的密码保护。这在多人管理的环境中尤其适用。

具体步骤:

Step 1: 登录 MySQL

首先使用密码登录 MySQL:

mysql -u root -p

Step 2: 修改用户的认证方式

使用 ALTER USER 语句将某个用户配置为免密登录。例如,将 root 用户在 localhost 上登录时配置为免密码登录:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

这里的 BY '' 表示将密码设置为空。

Step 3: 刷新权限

执行以下命令使修改生效:

FLUSH PRIVILEGES;

Step 4: 免密码登录

现在,用户 root 在本地可以直接登录 MySQL 而无需输入密码:

mysql -u root

优点:

  • 灵活控制:可以为指定用户和主机配置免密登录,而其他用户仍需要密码。
  • 适用于多用户环境:确保权限管理的灵活性,同时提升部分用户的便捷性。

缺点:

  • 安全风险:免密码的用户如果配置不当,可能导致安全隐患。因此,建议仅为信任的用户配置免密登录,且限制登录主机(如仅限本地登录 localhost)。

通过设置client标签

编辑/etc/my.cnf文件,添加如下代码

[client]
user=root
password=123456
port=3306

配置完成后可以使用mysql命令直接登录数据库
在这里插入图片描述

缺点

  • 安全风险:此方式最大问题是明文存储密码,见配置文件各用户可见,非常的不安全。

~/.my.cnf

此种方式也是明文存储,配置方式同client标签一样,文件为隐藏文件,设置文件为改用户可读,与上边方式相比安全性有所提高。经验证测试,~/.my.cnf配置文件优先于/etc/my.cnf。

~/.my.cnf 代表当前用户的家目录下的 .my.cnf 配置文件,只对该用户生效

[root@sonar ~]# cat .my.cnf
[client]
user=root
password=123456
port=3306
[root@sonar ~]# chmod .my.cnf

配置完成后可以使用mysql命令直接登录数据库,这个只对root用户生效

在这里插入图片描述


几种种方式的对比与应用场景

方式优点缺点适用场景
使用操作系统用户免密登录操作简单,便于调试及自动化任务安全性低,所有用户都可绕过权限校验临时调试、本地开发和短期自动化任务
配置免密文件 mysql_config_editor安全性高,避免明文存储密码,自动化任务执行方便仅限配置了免密文件的用户使用长期服务器部署、自动化脚本、定时任务
MySQL 用户授权配置免密登录灵活控制指定用户,适合多用户环境配置不当存在安全风险生产环境中指定用户的免密登录,如数据库管理员的本地管理
通过设置client标签操作简单,便于调试及自动化任务安全性低临时调试、本地开发和短期自动化任务

总结

MySQL 免密登录在特定场景下可以极大提高操作效率,减少繁琐的登录操作。在选择合适的免密登录方式时,应根据实际需求和安全性考虑:

  • 对于本地调试或短期维护任务,可以使用操作系统用户免密登录,但应注意安全风险。
  • 对于生产环境中的自动化任务,使用 mysql_config_editor 配置免密文件是一个安全且方便的选择。
  • 如果是多人管理的环境,可以通过 MySQL 用户授权方式为特定用户配置免密登录,同时保留其他用户的密码保护。

最终,合理的使用免密登录技术,不仅能提高工作效率,还能确保系统的安全性和稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/893440.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

晶体与晶振的区别

概述 晶振是有源晶振的简称,又叫振荡器。英文名称是oscillator。 晶体则是无源晶振的简称,也叫谐振器。英文名称是crystal,电路上简称为XTAL。 无源晶振(晶体):需要借助时钟电路才能产生振荡信号。 有源…

基于SpringBoot网上超市的设计与实现(论文+源码)_kaic

摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此超市商品销售信…

Oracle DECODE 丢失时间精度的原因与解决方案

在Oracle数据库中,DECODE 函数是一个非常实用的条件处理函数,通常用于替代简单的 CASE WHEN 语句。它根据给定的值列表进行匹配,如果匹配成功则返回相应的值。如果不匹配,返回一个默认值。 问题描述 SELECT DECODE(-21, -1, NU…

Python酷库之旅-第三方库Pandas(157)

目录 一、用法精讲 716、pandas.Timedelta.view方法 716-1、语法 716-2、参数 716-3、功能 716-4、返回值 716-5、说明 716-6、用法 716-6-1、数据准备 716-6-2、代码示例 716-6-3、结果输出 717、pandas.Timedelta.as_unit方法 717-1、语法 717-2、参数 717-3、…

MyBatis 框架搭建时依赖包引入异常

MyBatis 框架搭建时依赖包引入异常 问题:原因:解决办法: 问题: 在基于idea环境中学习搭建mybatis框架时,在maven工程的pom.xml文件中引入的 junit及mysql依赖包后,出现驼色阴影,提示信息如下图&…

白平衡之基于 Green 通道的白平衡算法

免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济…

IP报文格式、IPv6概述

IPv4报文格式 IPv4报文首部长度至少为20字节(没有可选字段和填充的情况下),下面来逐一介绍首部各个字段的含义 Version版本:表示采用哪一种具体的IP协议,对于IPv4来说该字段就填充4以表示,如果是IPv6就填充6IHL首部长度&#xff…

HTML5实现古典音乐网站源码模板2

文章目录 1.设计来源1.1 主界面1.2 古典音乐界面1.3 著名人物界面1.4 古典乐器界面1.5 历史起源界面1.6 联系我们界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcLeigh 文章地址&a…

3D Gaussian Splatting前向渲染代码解读

文章目录 3D Gaussian Splatting前向渲染简介3DGS前向渲染流程伪代码 代码解读栅格化主流程初始化常量和变量预处理生成Idx为排序做准备查找最高有效位device级别的并行基数排序排序后处理渲染 预处理获取3D高斯点的id,变量初始化检查3D高斯点是否在视锥体范围内计算…

(十九)、使用 minikube 运行k8s 集群

文章目录 1、机器信息2、官方文档3、启动本机 docker4、安装 minikube5、启动 minikube5.1、报错重试应该做什么? 6、启动后7、安装 Vs Code & k8s extensions8、在 VS Code 查看运行起来的 k8s 集群9、基本命令10、虚拟化不支持 Mac Os 14.3.1 1、机器信息 Ma…

LabVIEW提高开发效率技巧----事件触发模式

事件触发模式在LabVIEW开发中是一种常见且有效的编程方法,适用于需要动态响应外部或内部信号的场景。通过事件结构(Event Structure)和用户自定义事件(User Events),开发者可以设计出高效的事件驱动程序&am…

Linux的kafka安装部署

1.kafka是一个分布式的,去中心化的,高吞吐低延迟,订阅模式的消息队列系统 确保要有jdk与zookeeper安装配置 2.下载kafka安装包 http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz 此时可以wget http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.…

express 基本使用

Nodejs 第二十九章(express) Nodejs 第三十章(防盗链) 1. 安装 pnpm init pnpm add express配置package.json "main": "app.js","type":"module",2. 使用 1. 监听端口 app.js // 引…

【数据分享】全国文化-限额以上文化批发和零售业企业情况(2017-2021年)

数据介绍 一级标题指标名称文化限额以上文化批发和零售业企业单位数文化限额以上内资文化批发和零售业企业企业单位数文化限额以上港、澳、台商投资文化批发和零售业企业企业单位数文化限额以上外商投资文化批发和零售业企业企业单位数文化限额以上国有控股文化批发和零售业企业…

设置 Notepad++ 制表符(Tab 缩进)宽度为2个空格大小

Notepad 默认的制表符宽度是 4 个空格的大小,一个规模比较大的代码段或者 xml 等文件,小屏幕打开时看到的情景真的和让人着急,拖来拖去!有两种方案可以解决这种情况。 修改缩进为空格 这种我们不太推荐,但是有些公司…

刚刚,ChatGPT推出Windows客户端!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

SpringBoot优雅下线

一,什么是优雅下线 当我们需要部署新版本代码的时候,需要重启服务,这个时候可能会出现一些问题,比如之前服务正在处理的请求还在处理,这个时候如果强制的停止服务,会造成数据丢失或者请求失败的情况。那么…

Vue项目中实现拖拽上传附件:原生JS与Element UI组件方法对比

在现代化的Web应用中,文件上传是一个基本功能。随着技术的发展,拖拽上传已经成为提升用户体验的一个重要特性。在Vue项目中,我们可以通过原生JavaScript或使用Element UI组件来实现这一功能。下面我们将分别介绍这两种方法,并对比…

第十二章 RabbitMQ之失败消息处理策略

目录 一、引言 二、RepublishMessageRecoverer 实现 2.1. 实现步骤 2.2. 实现代码 2.2.1. 异常交换机队列回收期配置类 2.2.2. 常规交换机队列配置类 2.2.3. 消费者代码 2.2.4. 消费者yml配置 2.2.5. 生产者代码 2.2.6. 生产者yml配置 2.2.7. 运行效果 一、引言 …

MiGPT让你的小爱音响更聪明

大家好,我是晓凡。 今天要给大家带来一个超级有趣的开源项目MiGPT。 这个项目,简直就是给小爱音箱装上了超级大脑,让你的小爱音箱更聪明。 想象一下,当小爱音箱接入大模型后,上知天文,下知地理&#xff…