MySQL隐藏密码之mysql_config_editor

这篇具有很好参考价值的文章主要介绍了MySQL隐藏密码之mysql_config_editor。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MySQL隐藏密码之mysql_config_editor,数据库,mysql,adb,数据库,密码隐藏,数据库安全
转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


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

MySQL隐藏密码之mysql_config_editor,数据库,mysql,adb,数据库,密码隐藏,数据库安全

上面命令中的“-h localhost”可以换成IP,如:
MySQL隐藏密码之mysql_config_editor,数据库,mysql,adb,数据库,密码隐藏,数据库安全

但要注意user表中该用户允许的登录权限是什么,如果只允许localhost登录,换成IP就会报错,如下截图:
MySQL隐藏密码之mysql_config_editor,数据库,mysql,adb,数据库,密码隐藏,数据库安全

原因是在User表里面root用户的Host一列指定是localhost:
MySQL隐藏密码之mysql_config_editor,数据库,mysql,adb,数据库,密码隐藏,数据库安全

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

过程如图:
MySQL隐藏密码之mysql_config_editor,数据库,mysql,adb,数据库,密码隐藏,数据库安全

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文章来源地址https://www.toymoban.com/news/detail-789793.html

到了这里,关于MySQL隐藏密码之mysql_config_editor的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 07 mysql5.6.x docker 启动, 无 config 目录导致客户端连接认证需要 10s

    呵呵 最近再一次 环境部署的过程中碰到了这样的一个问题 我基于 docker 启动了一个 mysql 服务, 然后 挂载出了 数据目录 和 配置目录, 没有手动复制配置目录出来, 所以配置目录是空的 然后 我基于 docker 启动了一个 nacos, 配置数据库设置为上面的这个 mysql 然后 启动 nacos, 启动

    2024年02月12日
    浏览(19)
  • Mysql 忘记密码怎么重置密码(详细步骤)

    每种方法都有其适用的情况,根据具体情况选择合适的方法。无论选择哪种方法,请务必在重置密码后及时删除临时用户并重新启动 MySQL 服务。 停止服务 使用 mysqld_safe 命令启动 MySQL 服务,跳过权限检查,执行后可能需要回车下 登录 MySQL 服务,并使用 mysqladmin 命令重置密码

    2024年02月10日
    浏览(18)
  • 宝塔安装MySQL、设置MySQL密码、设置navicat连接

    登录MySQL 切换到MySQL数据 查询用户信息 第一行host是我自己添加的,最下面一行是一开始就有的root账户,可以直接把user表的root账户对应的host改为’%\\\'就可以在Navicat上远程登录了,就是SQL的update语句,不用搞得那么复杂 update user set host = \\\'%\\\' where host = \\\'localhost\\\' and user = \\\'root\\\'; 刷

    2024年02月19日
    浏览(25)
  • MySQL忘记密码,重置root密码(纯步骤)

    进入MySQL安装bin文件夹,打开cmd 1、停止服务(若已停止则忽略) 2、跳过MySQL验证(无密码登录) 其中my.ini文件地址根据自己情况修改 3、以管理员方式启动新的cmd命令提示符窗口,并进入mysql安装的bin目录 4、直接输入“mysql”进入mysql工作台界面 5、输入命令“use mysql;” 打

    2024年02月02日
    浏览(28)
  • Docker登录MySQL,密码正确却提示密码错误

     当我输入了正确的MySQL密码的时候确提示我密码错误: 这是由于之前的挂载点的数据没有删除干净,删除掉宿主机下的mysql_master文件即可

    2024年01月22日
    浏览(38)
  • mysql8初始密码及root密码修改

     安装mysql8之后没有办法登录,初始密码是多少? 获取初始密码输入以下命令mysqld --initialize --console mysqld --initialize --console 执行完成后,会输出 root 用户的初始默认密码 APWCY5wshjQ 就是初始密码 如果刚开始没有记住这个密码,那就删除mysql目录下的data文件夹重新进行初始化,

    2024年02月11日
    浏览(25)
  • MySQL数据库忘记密码后,如何修改密码

    1、以管理员身份打开命令行 2、在命令行中进入MySQL的bin目录所在文件夹 即:在命令行中输入: 路径查找如下: 命令行输入命令: 3、跳过MySQL用户验证登录数据库 命令行输入: 注意:输入此命令之后,当前的命令行就无法操作了,此时需要再打开一个新的命令行。(在这一步

    2024年02月04日
    浏览(36)
  • MySQL的密码策略

    用户可从哪台主机连接mysql数据库是由mysql.user表中的host值来确定的。 将user用户的host值设置为% 刷新权限 MySQL 系统自带有 validate_password 插件,此插件可以验证密码强度,未达到规定强度的密码则不允许被设置。MySQL 5.7版本默认是不启用该插件的,8.0 版本默认情况下启用该插

    2024年02月03日
    浏览(20)
  • MySQL修改登录密码

    适用于可以登录进入mysql数据库,想修改密码或者提示密码过期 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement 如果忘记密码可以看Linux系统MySQL忘记登录密码-CSDN博客这篇文章 方法一: 方法二: 方法三: 方法四: 如果提示:ERROR 1819 (HY00

    2024年02月02日
    浏览(16)
  • docker重置mysql密码

    1、可以删掉容器重来一 一次(费时费力) 2、重置docker内的mysql密码

    2024年02月15日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包