博客
关于我
技术分享 | mysqlsh 命令行模式 & 密码保存
阅读量:615 次
发布时间:2019-03-13

本文共 1828 字,大约阅读时间需要 6 分钟。

MySQL shell 高级使用技巧:密码管理与批量操作

作为 MySQL 的运维人员,熟悉 MySQL shell 的命令行操作对日常工作极为重要。其中,批量操作与密码管理_module_是常见需求。本文将详细介绍如何通过 mysql shell 实现无交互式登录以及密码管理的高级使用方法。


一、 MySQL shell 命令模式概述

在脚本化操作中,经常需要执行无交互式的 mysql shell 命令。使用 mysql shell 可以像传统的 mysql 提交命令一样工作,只需指定选项即可执行操作。具体语法如下:

mysqlsh [options] -- shell_object object_method [arguments]

例如,想要查看特定主机上的集群状态,可以执行:

mysqlsh -h172.16.22.1 -P3306 -uroot -p -- cluster status

该命令会输出集群状态信息,即等同于调用 db.a_getCluster().status()。这种方式在脚本中非常方便,避免了交互式登录的繁琐。


二、 MySQL shell 密码管理详解

密码管理是脚本化操作中至关重要的一环。直接暴露密码不仅危及安全,还容易导致密码泄露。本节将介绍如何通过 mysql shell WITHOUT INTERACTION 模式实现密码存储与管理。


1. 配置存储密码选项

默认情况下,mysql shell 会询问是否保存密码。你可以通过配置选项来控制存储行为。

修改默认存储密码行为:

shell.options.setPersist("credentialStore.savePasswords", "always");

或者,单独设置相关选项:

shell.options.setPersist("credentialStore.helper", "
" );

启用后使用的下一次登录会再次生效。如果发现提示 invalid>,说明 mysql_config_editor 未安装。这种工具用于存储和管理数据库连接密码。


2. 查看当前保存的密码

通过 mysql shell 查看已存储的密码连接串:

shell.listCredentials();

输出结果类似:

[    "root@localhost",    "universe_op@10.186.63.93:3306",    "root@127.0.0.1:3306"]

这些信息是通过 mysql_config_editor 保存的。你可以手动使用 mysql_config_editor 查看或打印详细信息:

mysql_config_editor print --all

将输出结果与 mysql shell 中的密码对应,确保数据一致。


3. 自动保存密码

在第一次连接时,允许程序自动提示保存密码:

mysqlsh universe_op@10.186.63.93:3306

输入密码后,默认会提示是否保存密码。输入 Y 即可存储登录信息。


4. 手动添加密码

通过 mysql_config_editor 手动添加并保存密码终结:

mysql_config_editor set --login-path="universe_op@10.186.63.93:3306" --host=10.186.63.93 --port=3306 --user=universe_op -p

设置完成后,下次登录时将无需输入密码。


三、密码删除操作

有时需要清除旧的或错误的密码连接串。使用以下命令删除指定的密码:

mysql_config_editor remove --login-path=universe_op@10.186.63.93:3306

完成后,相关登录信息将从系统中移除,确保安全性。


四、注意事项

  • 如果发现密码存储状态异常(如提示 invalid> ),请确认 mysql_config_editor 是否已安装。
  • 确保密码存储方式与业务逻辑一致,避免误删重要密码。
  • 建议定期检查存储的密码连接串,确保其与实际用存不符。

通过以上方法,可以在脚本中高效实现 mysql shell 的无交互式登录,同时保证密码安全。这种方式特别适合自动化监控和集群维护任务。希望本文能为您的工作节省时间,提升效率!

转载地址:http://adraz.baihongyu.com/

你可能感兴趣的文章
Possible missing firmware
查看>>
算法的学习方式
查看>>
JAVA BigInteger和BigDecimal类常用方式
查看>>
ubuntu挂载移动硬盘出现错误:mount:unknown filesystem type ‘exfat‘
查看>>
深度学习框架 各种模型下载集合 -- models list
查看>>
双层卷积神经网络--tf
查看>>
six.move 的作用
查看>>
错误:'BasicLSTMCell' object has no attribute '_kernel'
查看>>
常用快捷键等
查看>>
MySQL(九)SQL优化
查看>>
Django认证系统
查看>>
Flask视图进阶
查看>>
linux select函数 写一个服务器,转发数据
查看>>
QT for MCU (一)开始
查看>>
机器学习全教程
查看>>
ubuntu配置环境变量(变量不重复)
查看>>
ubuntu 18.04LTS + MATLAB2018b启动opengl 硬件加速
查看>>
关于JS的数据类型
查看>>
JAVA经典算法40题(3)
查看>>
idea在连接mysql数据库时区错误
查看>>