MySQL隐藏密码之mysql_config_editor

湖蓝几何球体LinkedIn Banner.png
转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


1. mysql_config_editor介绍

mysql_config_editor是一个MySQL自带的一款用于安全加密登录的工具,使用这个工具,可以创建一个登录MySQL的路径(或者说是创建一个登录MySQL的别名),将登录MySQL的username、password、port、socket文件等一系列的权限参数存入一个叫.mylogin.cnf的隐藏文件中。

这个文件的位置在Windows上是%APPDATA%\MySQL目录,在非Windows系统上是当前用户的家目录,如/root目录。该文件可以被MySQL客户端程序读取,以获得连接到MySQL服务器的认证凭证。

mysql_config_editor对 .mylogin.cnf文件进行模糊处理,因此无法将其作为明文读取,比如使用cat是不能查看的。

但mysql_config_editor提供了一个 print命令用于显示登录路径文件内容的命令,但即使在这种情况下,密码值也会被屏蔽,以免以其他用户可以看到的方式出现(见后面举例)。

使用mysql_config_editor可以管理一台MySQL实例,也可以用于管理多台MySQL实例。最重要的是能免除在命令行、脚本里输入明文密码,带来一系列的安全隐患了。不仅方便,而且安全。

2. mysql_config_editor的选项和命令

2.1 mysql_config_editor的4个选项

选项含义
–help查看帮助信息
–debug写debug日志
–verbose详细模式,用于查找问题
–version查看版本信息

2.2 mysql_config_editor的4个命令

2.2.1 set

set:创建一个登录MySQL的路径(别名)信息,将登录路径的用户名密码等相关参数写入登录路径文件.mylogin.cnf

set选项参数介绍:

该命令后面包含–host、–password、–port、–socket和–user等几个选项,用于定义要登录的数据库的相关参数。如果没有给出这些选项,mysql_config_editor将登录路径写入空组。
set后面可以跟如下选项:

选项含义
–help显示set命令的帮助消息并退出
–host=host_name, -h host_name写要写入登录路径的主机名(或IP)
–login-path=name, -G name要创建的登录路径,如果不指定,默认为client
–user=user_name, -u user_name输入登录用户名
–password, -p提示输入密码,密码不会回显。如要输入空密码,则在提示输入密码时直接摁回车键即可
–port=port_num, -P port_num输入MySQL端口。如不指定,则默认是3306
–socket=file_name, -S file_name输入MySQL的socket文件地址,如无特殊指定,可不写
–warn, -w如果命令试图覆盖现有的登录路径,则警告并提示用户进行确认。这个选项在默认情况下是启用的;使用–skip-warn禁用它
set使用举例:

例1:查看帮助信息:

mysql_config_editor set --help

例2:创建本地登录路径localauth:

mysql_config_editor set --login-path=localauth -h localhost --user=root --port=3306 --password

image.png

上面命令中的“-h localhost”可以换成IP,如:
image.png

但要注意user表中该用户允许的登录权限是什么,如果只允许localhost登录,换成IP就会报错,如下截图:
image.png

原因是在User表里面root用户的Host一列指定是localhost:
image.png

2.2.2 reset

reset:清空登录路径文件的全部内容

reset选项参数介绍:
选项含义
–help显示reset命令的帮助消息并退出
reset使用举例:

后面不跟参数,清空/root/.mylogin.cnf的全部内容:

mysql_config_editor reset

2.2.3 remove

remove:从原有的登录路径文件中删除指定的登录路径,或删除某个登录路径(别名)的某一项参数。

remove选项参数介绍:

remove后面可以带–host、 --password、–port、 --socket、–user 等选项。如果没有给出这些选项,则 remove删除整个登录路径。remove后面接的选项和set对应,set能设置,remove就能删除。

选项含义
–help显示remove命令的帮助消息并退出
–host=host_name, -h host_name从登录路径中删除主机名
–login-path=name, -G name要删除或修改的登录路径,如不指定,默认为client
–user=user_name, -u user_name从登录路径中删除用户名
–password, -p从登录路径中删除密码
–port=port_num, -P port_num从登录路径中删除端口
–socket=file_name, -S file_name从登录路径中删除MySQL的socket文件地址
–warn, -w如果命令尝试删除默认登录路径(client)并且没有指定–login-path=client,则警告并提示用户进行确认。这个选项在默认情况下是启用的;使用–skip-warn禁用它。
remove使用举例:

例1:删除前面创建的路径auth的密码:

mysql_config_editor remove --login-path=auth --password

例2:删除整个登录路径(别名):

mysql_config_editor remove --login-path=auth

过程如图:
image.png

2.2.4 print

print:打印登录路径文件的内容,但密码显示为 *****

print选项参数介绍:

print可以打印指定路径(别名)信息,也可以打印全部路径信息。分别由–login-path和–all两个参数指定。

选项含义
–help显示remove命令的帮助消息并退出
–all打印登录文件中左右登录路径
–login-path=name打印指定登录路径的内容

首先创建测试路径auth和localauth:
例1:不指定需要打印的登录路径,则默认打印名为“client”的路径,如不存在client,则打印内容为空:

[root@test101 ~]# mysql_config_editor print   # 因.mylogin.cnf中没有client这个路径,因此打印为空
[root@test101 ~]#

例2:打印指定路径auth

[root@test101 ~]# mysql_config_editor print --login-path=auth
[auth]
user = root
password = *****    #密码显示为****
host = 10.0.0.101
port = 3306
[root@test101 ~]#

例3:打印指定所有路径

[root@test101 ~]# mysql_config_editor print --all
[auth]
user = root
password = *****
host = 10.0.0.101
port = 3306
[localauth]
user = root
password = *****
host = localhost
port = 3306
[root@test101 ~]#

例4:同时指定–all和 --login-path, --all则优先,会打印所有路径信息

[root@test101 ~]# mysql_config_editor print --login-path=auth --all 
[auth]
user = root
password = *****
host = 10.0.0.101
port = 3306
[localauth]
user = root
password = *****
host = localhost
port = 3306
[root@test101 ~]#

最后:在一个简易的备份小脚本中的应用

#!/bin/bash
mkdir /home/bakdata/ -p
bakdir=/home/bakdata/mysqldump --login-path=auth test --skip-add-drop-table --lock-tables --flush-privileges > ${bakdir}/backup_$(date +%F_%w).test.sql;

ps:51对参数的显示似乎不太友好,参数前面两条-显示出来只有一条。
可查看同文链接:
https://mp.weixin.qq.com/s?__biz=MzU5Njk2OTg3MA==&mid=2247484021&idx=1&sn=cb13c86c51abee3d945a2ea6da5e6e30&chksm=fe5bd294c92c5b824839b534807b96dfc4d3a5a363004a0a2faef2ec503edb19b88d00bd37cb&token=256870874&lang=zh_CN#rd

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM8入门|第一个工程

开发软件 不支持Keil,使用IAR for STM8,注意 IAR系列有很多种 STM8对应软件是 IAR for STM8 软件下载: 官网下载地址,官网版本下载比较麻烦,可以按教程网盘地址下载。 下载安装教程: https://www.cnblogs…

4. Mybatis 事务和Spring事务关系

大体上分为两种情况:方法上添加了事务注解Transactional 和方法上没有添加事务注解Transactional。 添加了Transactional 注解的在注入 bean 的时候就会被创建代理类,在代理类中使用增强逻辑进行事务处理。没有添加Transactional 注解的,在 …

【JaveWeb教程】(26) Mybatis基础操作(新增、修改、查询、删除) 详细代码示例讲解(最全面)

目录 1. Mybatis基础操作1.1 需求1.2 准备1.3 删除1.3.1 功能实现1.3.2 日志输入1.3.3 预编译SQL1.3.3.1 介绍1.3.3.2 SQL注入1.3.3.3 参数占位符 1.4 新增1.4.1 基本新增1.4.2 主键返回 1.5 更新1.6 查询1.6.1 根据ID查询1.6.2 数据封装1.6.3 条件查询1.6.4 参数名说明 1. Myb…

如何打赢稳定性之战?

文章目录 前言为什么总会出现问题呢?如何证明你的稳定性做的有效果?既是持久战,也是防御战1. 提前建筑好防御工事2. 以攻为守3. 找外部支援和配合 前言 随着23年年末期间,各大厂争先恐后的出现的各种线上故障,一时间“…

帆软使用总结-动态分组背景变色

1.开发界面设计 提示: ROUNDUP((ROW() - M) / N, 0) % 2 0row() 获取当前行号 M 标题行数 N 间隔行数 ROUNDUP() 向上取整 如果被2整除,改变背景颜色 当前公式:ROUNDUP((ROW() - 2) / 3, 0) % 2 02.效果演示

【题解】—— 每日一道题目栏

2024.1 【题解】—— LeetCode一周小结1 1. 1599. 经营摩天轮的最大利润 2. 466. 统计重复个数 3. 2487. 从链表中移除节点 4. 2397. 被列覆盖的最多行数 5. 1944. 队列中可以看到的人数 6. 2807. 在链表中插入最大公约数 7. 383. 赎金信 【题解】—— LeetCode一周小…

【前端框架】Vue2合集

一、Vue快速上手 1、Vue概念 vue 是一个用于构建用户界面的渐进式框架&#xff0c;由数据驱动 vue 的两种使用方式 vue 核心包开发&#xff1a;局部模块改造vue 核心包与 vue 插件 工程化开发&#xff1a;整站 开发 2、 创建实例 1、准备容器 <div id"app"&…

网站万词霸屏推广系统源码:实现关键词推广,轻松提高关键词排名,带完整的安装部署教程

现如今&#xff0c;互联网的快速发展&#xff0c;网站推广成为企业网络营销的重要手段。而关键词排名作为网站推广的关键因素&#xff0c;一直备受关注。罗峰给大家分享一款网站万词霸屏推广系统源码&#xff0c;该系统可实现关键词推广&#xff0c;有效提高关键词排名&#xf…

【教3妹学编程-算法题】回文串重新排列查询

3妹&#xff1a;好冷啊&#xff0c; 冻得瑟瑟发抖啦 2哥 : 这已经是你今年的第几次抖啦&#xff1f; 3妹&#xff1a;昨天20度&#xff0c;今天7度&#xff0c;直降13度呢&#xff0c;能不抖嘛 2哥 : 继哈尔滨之后&#xff0c;全国各地的城市也在发展旅游业。 河北喊话赵丽颖回…

使用mamba替换conda和anaconda配置环境安装软件

使用mamba替换miniconda和anaconda&#xff0c;原因是速度更快&#xff0c;无论是创建新环境还是激活环境 conda、mamba、anaconda都是蟒蛇的意思… 下载mambaforge wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh ba…

乐意购项目前端开发 #3

一、icon的使用 前往网站挑选要的图标 iconfont-阿里巴巴矢量图标库https://www.iconfont.cn/?spma313x.manage_type_myprojects.i3.2.2f173a81fQSVOU 创建项目添加图标 选择Font Class 下载到本地 解压后会看到这个页面 在asserts目录下创建iconfont目录,然后将最底下的6…

数据库第一次作业

1.创建一个英雄表 create table t_hero ( id int primary key auto_increment, name varchar(10) unique not null, gender char(5) check (gender in (男,女)), grade char(5) default 5星, groups char(5) check (groups in (毁灭,巡猎,智识,存护,…

GPT与文心一言大模型的比较与展望

目录 前言1 GPT和文心一言简介2 GPT和文心一言的技术原理和基础架构3 GPT和文心一言的模型规模和参数数量4 GPT和文心一言的语言理解表现5 展望GPT和文心一言未来的发展5.1 技术改进5.2 应用扩展 结语 前言 随着人工智能技术的飞速发展&#xff0c;自然语言处理领域的两个引领…

swing快速入门(四十四)拖动、编辑JTree结点

注释很详细&#xff0c;直接上代码 新增内容&#xff08;源码细节知识点巨多&#xff0c;建议细看&#xff09; 1.设置JTree可编辑 2.使用JTree关联的数据模型实现节点的增删改 3.鼠标拖动节点事件设计及处理方法 4.手动刷新视图与自动刷新的方法区别 5.自定位节点视图方法 源码…

linux环境中一次启动多个jar包,并且设置脚本开机自启

1、编写启动脚本 我们在通过jar启动项目时&#xff0c;有时候会比较多&#xff0c;启动会比较麻烦&#xff0c;需要编写shell脚本启动&#xff0c;将启动脚本存放在需要启动的jar包路径下。&#xff08;文档存放在 /home/process_parent &#xff09; vim start.sh#! /bin/sh…

【python】11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景&#xff0c;而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词&#xff0c;可能需要先科普一下关于文件系统的知识&#xff0c;但是这里我们并不浪费笔墨介绍这个概念&#xff0c;请大…

Vue报错 Cannot find module ‘../../modules/es6.symbol‘解决办法

在进行webpack打包的时候&#xff0c;会出现Cannot find module XXX’的错误&#xff0c;找不到某个模块的错误&#xff0c;今天给出解决方法&#xff1a; 直接进行npm install重新打包&#xff1b;如果npm install重新打包之后&#xff0c;仍然出现这个问题&#xff0c;可以进…

NLP论文阅读记录 - 2021 | WOS 智能树提取文本摘要深度学习

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.前提三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 An Intelligent Tree Extractive Text Summarization Deep Learning …

迁移mysql8.x数据到monggodb数据库

因流量逐步增加随即数据库要从mysql换成monggodb&#xff0c;所以有了数据迁移的需求 首先需要导出mysql的数据&#xff0c;导出格式为.CSV的文件 使用navicat链接mysql数据库注意&#xff0c;需要使用拥有所有权限的用户 登录mysql mysql -u root -pZxcvbnm2024 CREATE USER …

实战指南:如何在Spring Boot中无缝整合Dubbo【四】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 实战指南&#xff1a;如何在Spring Boot中无缝整合Dubbo【四】 前言项目结构主项目(作为主pom)接口服务提供者properties文件实现类 服务消费者properties接口层 实现效果图 前言 微服务架构已经成为…