首页 > 数据库 >使用mysql_config_editor可以为特定的MySQL服务器或客户端程序设置登录路径

使用mysql_config_editor可以为特定的MySQL服务器或客户端程序设置登录路径

时间:2024-06-15 22:33:29浏览次数:16  
标签:-- 客户端程序 editor mysql MySQL login config

login_path 介绍

在 MySQL 中,login_path 通常不是 MySQL 服务器配置或 SQL 语句的一部分。但是,它经常与 MySQL 的命令行工具 mysql_config_editor 一起使用,这是一个允许用户安全地存储认证凭据(如用户名、密码和连接参数)的工具。

mysql 的 client 工具都能使用 login-path,如 mysql、mysqldump、mysqladmin、mysqlbinlog、mysql_upgrade、mysqld_safe、mysqld_multi、mysqldumpslow 等等。

mysql_config_editor 介绍

mysql_config_editor 是 MySQL 提供的一个实用程序,它允许用户安全地存储加密的认证凭据(如用户名、密码和服务器连接参数)在 ~/.mylogin.cnf 文件中。这样做的好处是,用户可以在不使用命令行参数或选项的情况下连接到 MySQL 服务器,同时避免在脚本或历史记录中暴露敏感信息。

mysql_config_editor 允许用户设置和管理登录路径(login paths),这些登录路径存储在用户主目录下的 ~/mylogin.cnf 文件中。使用登录路径,用户可以在命令行上无需输入用户名、密码或其他连接参数即可连接到 MySQL 服务器。

使用 mysql_config_editor

1、mysql_config_editor使用帮助

mysql_config_editor set --help

[root@orcl23c ~]# mysql_config_editor set --help
mysql_config_editor  Ver 8.4.0 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2012, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

MySQL Configuration Utility.

Description: Write a login path to the login file.
Usage: mysql_config_editor [program options] [set [command options]]
  -?, --help          Display this help and exit.
  -h, --host=name     Host name to be entered into the login file.
  -G, --login-path=name 
                      Name of the login path to use in the login file. (Default
                      : client)
  -p, --password      Prompt for password to be entered into the login file.
  -u, --user=name     User name to be entered into the login file.
  -S, --socket=name   Socket path to be entered into login file.
  -P, --port=name     Port number to be entered into login file.
  -w, --warn          Warn and ask for confirmation if set command attempts to
                      overwrite an existing login path (enabled by default).
                      (Defaults to on; use --skip-warn to disable.)

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
host                              (No default value)
login-path                        client
user                              (No default value)
socket                            (No default value)
port                              (No default value)
warn                              TRUE

2、设置登录路径

使用 mysql_config_editor 可以为特定的 MySQL 服务器或客户端程序设置登录路径。登录路径是一个名称,它引用了一组认证凭据。

mysql_config_editor set --login-path=local --host=localhost --user=your_username --password

注意:your_username是你自己需设置的账号。当您输入上述命令时,它会提示您输入与 --user 参数关联的密码。

示例

[root@orcl23c ~]# mysql_config_editor set --login-path=local --host=localhost --user=root --password
Enter password: 提示您输入与 --user 参数关联的密码。

3、 使用登录路径

一旦设置了登录路径,您就可以使用 mysql 客户端(或其他 MySQL 客户端程序)并指定登录路径来连接到 MySQL 服务器。

[root@orcl23c ~]# mysql --login-path=local
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.4.0 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

(root@localhost)[(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| db01               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

或者,如果您正在使用其他客户端(如 mysqldump、mysqladmin、mysqlbinlog等),您也可以这样做。

4、查看存储的凭据

尽管您不应该直接编辑 ~/.mylogin.cnf 文件(因为它包含加密的数据),但您可以使用 mysql_config_editor 查看其中存储的登录路径列表。

[root@orcl23c ~]# mysql_config_editor print --login-path=local
[local]
user = "root"
password = *****
host = "localhost"

5、删除登录路径

如果您不再需要某个登录路径,可以使用以下命令删除它

mysql_config_editor remove --login-path=local

mysql_config_editor remove --login-path=local

6、注意

  • 确保 ~/.mylogin.cnf 文件的权限设置得当,以便只有您自己可以读取它。
  • 如果您丢失了与加密凭据关联的密码或密钥,则无法恢复它们。因此,请确保备份这些凭据或记住相关的密码。
  • 在某些系统上,~/.mylogin.cnf 文件可能位于其他位置或具有不同的名称。但是,mysql_config_editor 默认会使用此位置。

7、综合示例

7.1、创建一个登陆用户

mysql -uroot -p -e "create user test@'%' identified by 'loginpath@2022';"

7.2、登陆路径设置

7.2.1、test用户设置登录路径
mysql_config_editor set --login-path=test --user=test --password --host=192.168.80.230 --port=3306
7.2.2、编辑环境变量增加alias

vi ~/.bash_profile
alias conn_test=“mysql --login-path=test”

source ~/.bash_profile

7.2.3、使用测试登录
[root@orcl23c ~]# conn_test -e "select user();"
+--------------+
| user()       |
+--------------+
| test@orcl23c |
+--------------+
[root@orcl23c ~]# conn_test -e "\s"
--------------
mysql  Ver 8.4.0 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:          21
Current database:
Current user:           test@orcl23c
SSL:                    Cipher in use is TLS_AES_128_GCM_SHA256
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.4.0 MySQL Community Server - GPL
Protocol version:       10
Connection:             192.168.80.230 via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
TCP port:               3306
Binary data as:         Hexadecimal
Uptime:                 12 days 21 hours 18 min 46 sec

Threads: 2  Questions: 84  Slow queries: 0  Opens: 237  Flush tables: 3  Open tables: 156  Queries per second avg: 0.000
--------------

标签:--,客户端程序,editor,mysql,MySQL,login,config
From: https://blog.csdn.net/zxrhhm/article/details/139613313

相关文章

  • MySQL中的日期格式化匹配
    在MySQL中,处理日期和时间数据是很常见的需求。在某些情况下,你可能需要从数据库中选择特定日期或格式化日期进行匹配。本文将介绍如何使用MySQL的SELECT语句对日期进行格式化匹配。1.基本的日期格式化函数MySQL提供了几个函数来处理和格式化日期和时间数据:DATE_FORMAT(dat......
  • MySQL数据库初体验
    SQLServer(微软公司产品)1、数据库基本概念(1)数据Data数据就是描述事物的符号记录。主要包括数字,文字、图形、图像、声音、档案记录等。一般以“记录”形式按统一的格式进行存储。(2)表表就是将不同的记录组织在一起。主要是用来存储具体数据。(3)数据库数据库(database)是表的集......
  • MySql 中 select 使用
    MySqlselect多种查询方式前言在数据库使用过程中,使用最多的场景就是查询数据,所以今天我们总结一下常用用的查询简单查询带条件查询多条件查询输出指定字段查询分组查询查询结果排序分页查询多表之间查询准备三张表:订单orders商品commodity用户users内容如下:......
  • MySQL + Keepalived自动切换
    目录一.环境准备二.部署软件三. master主机配置keepalived四.slave主机配置keepalived五.两台机器配置数据库检查脚本六.客户端模拟访问一.环境准备准备三个新环境的虚拟机,关闭防火墙和SElinux安全策略,并设置时间同步和配置好YUM源。虚拟IP用:192.168.226.20......
  • 快速提高MySQL查询效率的实用方法
    快速提高MySQL查询效率的实用方法包括以下几个方面,下面将详细列举并解释:使用合适的索引索引可以大大提高查询的速度,允许数据库系统快速定位和访问特定的数据行。在经常用于WHERE子句、JOIN操作和ORDERBY排序的列上创建索引。避免创建过多的索引,因为索引也会占用存储空间......
  • MySQL入门学习-子查询.ANY
        在MySQL数据库中,子查询是指一条查询语句嵌套在另一条查询语句中,可以用来实现复杂的查询逻辑。子查询通常在WHERE子句中使用,用于过滤或比较查询结果。    子查询ANY是指返回子查询结果集中的任意一个值,与其他子查询类型相比,子查询ANY的特点是返回值......
  • MySQL的高可用方案:深入Galera Cluster和ProxySQL
    一、引言1.1背景和重要性 随着互联网的发展与普及,数据库作为后端存储的重要组件,其稳定性、可用性和性能直接影响到一个系统的正常运行。特别是在高并发、大数据的现今环境下,一款高性能、高可用率的数据库系统更是大大提升了业务的效率和保障。 MySQL是一款广受欢......
  • mysql-sql-第十周
    学习目标:sql学习内容:31.查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总和联合查询不会显示没选课的学生(上接)Selectstudents.stunm,name,u.s,u.tfromstudents,(selectstunm,sum(counm)s,sum(tscore)tfromscoregroupbystunm)uwhereu.stun......
  • 部署mysql-8.0.35
    第一步:卸载系统自带mariadb查看系统自带的Mariadb:rpm-qa|grepmariadb卸载系统自带的Mariadb:rpm-e--nodepsmariadb-libs-5.5.44-2.el7.centos.x86_64删除etc目录下的my.cnf:rm-rf/etc/my.cnf检查mysql是否存在:rpm-qa|grepmysql第二步:将下载的mysql安装包mysql-8.0.3......
  • MySQL导出数据库脚本
    1在Navicat中找到项目对应的数据库(如:booksystem)→右键转储SQL文件→结构和数据注意:information_schema、mysql、performance_schema、sys这4个库是MySQL自己的,不是你项目的,不要打开或破坏它们2在弹出的另存为对话框中选择一个位置并点击保存......