【MySQL精通之路】管理和实用程序-MySQL配置实用程序-mysql_config_editor

目录

1.介绍

[1.1 存放位置](#1.1 存放位置)

[1.2 格式内容](#1.2 格式内容)

[1.2.1 文件加密](#1.2.1 文件加密)

2.调用mysql_config_editor

[2.1 定义MySQL的默认连接参数](#2.1 定义MySQL的默认连接参数)

[2.2 优先级](#2.2 优先级)

3.mysql_config_editor常规选项

[3.1 help](#3.1 help)

[3.2 debug](#3.2 debug)

[3.3 verbose](#3.3 verbose)

[3.4 version](#3.4 version)

4.mysql_config_editor命令和特定于命令行选项

[4.1 help](#4.1 help)

[4.2 print](#4.2 print)

[4.3 remove](#4.3 remove)

[4.4 reset](#4.4 reset)

[4.5 set](#4.5 set)


1.介绍

1.1 存放位置

mysql_config_editor实用程序使您能够将身份验证凭据存储在名为**.mylogin.cnf**的模糊登录路径文件中。

文件位置是Windows上的**%APPDATA%\MySQL**目录

非Windows系统上当前用户的root目录。

MySQL客户端程序稍后可以读取该文件,以获取连接到MySQL Server的身份验证凭据

1.2 格式内容

.mylogin.cnf登录路径文件 的未加密前内容由选项组组成,与其他选项文件类似。.

mylogin.cnf中的每个选项组都被称为"登录路径",这是一个只允许某些选项的组:主机、用户、密码、端口和套接字。将登录路径选项组视为一组选项,指定要连接到哪个MySQL服务器以及要作为哪个帐户进行身份验证。以下是一个未加密的示例:

sql 复制代码
[client]
user = mydefaultname
password = mydefaultpass
host = 127.0.0.1
[mypath]
user = myothername
password = myotherpass
host = localhost

当您调用客户端程序连接到服务器时,客户端会将**.mylogin.cnf** 与其他选项文件结合使用

它的优先级高于其他选项文件 ,但低于客户端命令行上明确指定的选项

有关选项文件使用顺序的信息,请参阅"配置的使用博客"。

【MySQL精通之路】MySQL的使用(2)-配置-CSDN博客

要指定备用登录路径文件名 ,请设置MYSQL_TEST_LOGIN_FILE 环境变量。此变量由mysql_config_editor 、标准mysql客户端(mysql、mysqladmin等)和mysql-test-run.pl测试实用程序识别。

程序使用登录路径文件中的组,如下所示:

如果您未指定--login-path=name选项来明确指示要使用哪个登录路径

那么mysql_config_editor默认情况下会对客户端登录路径进行操作。
如果没有--login-path选项,客户端程序从登录路径文件读取的选项组从其他选项文件读取的相同。考虑以下命令:

sql 复制代码
mysql

默认情况下,mysql客户端从其他选项文件中读取[client]和[mysql]组,因此它也从登录路径文件中读取它们。
使用--login-path选项,客户端程序还可以从登录路径文件中读取命名的登录路径。从其他选项文件读取的选项组保持不变。考虑以下命令:

sql 复制代码
mysql --login-path=mypath

mysql客户端从其他选项文件中读取[client]和[mysql],从登录路径文件中读取[client]、[mysql]和[mypath]。
即使使用**--no-defaults选项** ,客户端程序也会读取登录路径文件

除非设置**--no-login-paths**。

这允许更安全的方式指定密码相对命令行来说,即使不存在默认值。

1.2.1 文件加密

mysql_config_editor 对.mylogin.cnf文件进行模糊处理,因此无法将其作为明文读取,并且在客户端程序未进行模糊处理时,其内容仅在内存中使用。

通过这种方式,密码可以以非明文格式存储在文件中,并在以后使用,而无需在命令行或环境变量中公开。

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

mysql_config_editor 使用的加密方法可以防止密码以明文形式出现在**.mylogin.cnf**中,并通过防止无意中暴露密码来提供安全措施。

例如:

如果您在屏幕上显示一个常规的未被混淆的my.cnf选项文件,那么它包含的任何密码都是可见的

对于.mylogin.cnf,这不是真的,但使用的模糊处理不太可能阻止坚定的攻击者,你不应该认为它牢不可破 。在您的计算机上获得系统管理权限 以访问您的文件的用户可以毫不费力地解开.mlogin.cnf文件

登录路径文件必须对当前用户可读写,其他用户不能访问。否则,mysql_config_editor会忽略它,客户端程序也不会使用它。

2.调用mysql_config_editor

调用mysql_config_editor如下:

sql 复制代码
mysql_config_editor [program_options] command [command_options]

如果登录路径文件不存在,则由mysql_config_editor创建。

命令参数如下所示:

program_options: 由一般的mysql_config_editor选项组成。

**command:**指示要对.mylogin.cnf登录路径文件执行的操作。例如,set将登录路径写入文件,remove删除登录路径,print显示登录路径内容。

**command_options:**表示特定于该命令的任何其他选项,例如登录路径名和要在登录路径中使用的值。

命令名在程序参数集中的位置非常重要。例如,这些命令行具有相同的参数,但会产生不同的结果:

sql 复制代码
mysql_config_editor --help set
mysql_config_editor set --help

第一个命令行显示一条常规的mysql_config_editor帮助消息,并忽略set命令。

第二个命令行显示特定于set命令的帮助消息。


2.1 定义MySQL的默认连接参数

假设您要建立一个定义默认连接参数的客户端登录路径,以及一个名为remote的额外登录路径,用于连接到MySQL服务器hostremote.example.com

您希望按如下方式登录:

--默认情况下,到用户名和密码为localuserlocalpass的本地服务器

--到用户名和密码为remoteuserremotepass的远程服务器

要在.mylogin.cnf文件中设置登录路径,请使用以下set命令。在一行中输入每个命令,并在提示时输入相应的密码

sql 复制代码
$> mysql_config_editor print --all
[client]
user = localuser
password = *****
host = localhost
[remote]
user = remoteuser
password = *****
host = remote.example.com

print命令 将每个登录路径显示为一组行,以方括号中指示登录路径名称的组标题开头,后跟登录路径的选项值。密码值被屏蔽,不会显示为明文

如果未指定**--all** 以显示所有登录路径,也未指定**--login-path=name** 以显示命名登录路径,则print命令默认情况下会显示客户端登录路径(如果有)。

如前面的示例所示,登录路径文件可以包含多个登录路径。

通过这种方式,mysql_config_editor可以轻松地设置多个"个性化定制",以便连接到不同的mysql服务器,或者使用不同的帐户连接到给定的服务器。

以后调用客户端程序时,可以使用--login-path选项按名称选择其中任何一个。

例如,要连接到远程服务器,请使用以下命令:

sql 复制代码
mysql --login-path=remote

在这里,mysql从其他选项文件中读取[client]和[mysql]选项组,从登录路径文件中读取[client]、[mysql]和[mremote]组。

要连接到本地服务器,请使用以下命令:

sql 复制代码
mysql --login-path=client

因为mysql默认读取客户端和mysql登录路径,所以在这种情况下,--login-path选项不会添加任何内容。该命令等效于以下命令:

sql 复制代码
mysql

2.2 优先级

登录路径文件 中读取的选项优先于从其他配置文件读取的选项。

登录路径文件 中稍后出现的登录路径组读取 的选项优先于从文件中较早出现的组中读取的选项。

(后配置优先于先配置。会覆盖)

mysql_config_editor 按照创建登录路径的顺序 将登录路径添加到登录路径文件中,因此应该先创建更通用的登录路径 ,然后再创建更具体的路径

如果需要在文件中移动登录路径,可以将其删除,然后重新创建以将其添加到末尾

例如,客户端登录路径更通用,因为它由所有客户端程序读取,而mysqldump登录路径仅由mysqldump读取。

稍后指定的选项会覆盖先前指定的选项,因此将登录路径放在顺序客户端中,mysqldump会启用特定于mysqldump的选项来覆盖客户端选项。

当您将set命令与mysql_config_editor一起使用以创建登录路径时,不需要指定所有可能的选项值(主机名、用户名、密码、端口、套接字)。

只有给定的值才会写入路径。

当您调用客户端路径连接到MySQL服务器时,可以在其他选项文件 或命令行中指定以后所需的任何缺失值

在命令行上指定的任何选项都会覆盖在登录路径文件其他选项文件指定的选项

例如,如果远程登录路径中的凭据也适用于主机remote2.example.com,请按如下方式连接到该主机上的服务器:

sql 复制代码
mysql --login-path=remote --host=remote2.example.com

3.mysql_config_editor常规选项

mysql_config_editor支持以下常规选项,这些选项可以在命令行上命名的任何命令之前使用

有关特定于命令的选项的描述,请参见mysql_config_editor命令和特定于命令选项。

mysql_config_editor常规选项

选项名称 描述
--debug 写入调试日志
--help 显示帮助消息并退出
--verbose 详细模式
--version 显示版本信息并退出

3.1 help

显示常规帮助消息并退出。

要查看特定于命令的帮助消息,请按如下方式调用mysql_config_editor,其中command是帮助以外的命令:

sql 复制代码
mysql_config_editor command --help

3.2 debug

--debug[=debug_options], -# debug_options

编写调试日志。一个典型的debug_options字符串是d:t:o,file_name。

默认为d:t:o,/tmp/mysql_config_editor.trace。

只有使用WITH_DEBUG构建MySQL时,此选项才可用。Oracle提供的MySQL版本二进制文件不是使用此选项构建的。

3.3 verbose

详细模式。打印有关程序功能的更多信息。如果操作没有达到预期效果,此选项可能有助于诊断问题。

3.4 version

显示版本信息并退出。

4.mysql_config_editor命令和特定于命令行选项

本节介绍允许的mysql_config_editor命令,以及每一个命令行上命令名后面允许的特定于命令行的选项。

mysql_config_editor支持以下命令:

4.1 help

显示常规帮助消息并退出。此命令不接受以下选项。

要查看特定于命令的帮助消息,请按如下方式调用mysql_config_editor,其中command是帮助以外的命令:

sql 复制代码
mysql_config_editor command --help

4.2 print

以未加密的形式打印登录路径文件的内容,密码显示为*****的情况除外。

如果未命名登录路径,则默认登录路径名称为client。如果同时给定--all和--login路径,则--all优先。

print命令允许在命令名之后使用这些选项:

--help, -?

显示打印命令的帮助消息并退出。

要查看常规帮助消息,请使用mysql_config_editor--help。

--all

打印登录路径文件中所有登录路径的内容。

--login-path=name, -G name

打印命名登录路径的内容。

4.3 remove

从登录路径文件中删除登录路径 ,或通过删除其中的选项来修改登录路径。

此命令仅从登录路径中删除由--host、--password、--port、--socket和--user选项指定的选项。

如果没有提供这些选项,remove将删除整个登录路径 。例如,此命令仅从mypath登录路径中删除用户选项,而不是整个mypath登录通路:

sql 复制代码
mysql_config_editor remove --login-path=mypath --user

此命令将删除整个mypath登录路径:

sql 复制代码
mysql_config_editor remove --login-path=mypath

remove命令允许在命令名之后使用这些选项:

--help, -?

显示remove命令的帮助消息并退出。

要查看常规帮助消息,请使用mysql_config_editor--help。

--host, -h

从登录路径中删除主机名。

--login-path=name, -G name

要删除或修改的登录路径。如果未给定此选项,则默认登录路径名为client。

--password, -p

从登录路径中删除密码。

--port, -P

从登录路径中删除TCP/IP端口号。

--socket, -S

从登录路径中删除Unix套接字文件名。

--user, -u

从登录路径中删除用户名。

--warn, -w

如果命令尝试删除默认登录路径(客户端),并且未指定--login-path=client,则发出警告并提示用户确认。此选项在默认情况下处于启用状态;使用--skip-warn禁用它。

4.4 reset

清空登录路径文件的内容。

reset命令允许在命令名称之后使用这些选项:

--help, -?

显示重置命令的帮助消息并退出。

要查看常规帮助消息,请使用mysql_config_editor--help。

4.5 set

登录路径写入登录路径文件。

此命令只将**--host、--password、--port、--socket和--user**选项指定的选项写入登录路径。

如果没有给出这些选项,mysql_config_editor会将登录路径写入一个空组

set命令允许在命令名之后使用这些选项:

--help, -?

显示set命令的帮助消息并退出。

要查看常规帮助消息,请使用mysql_config_editor--help。

--host=host_name, -h host_name

要写入登录路径的主机名。

--login-path=name, -G name

要创建的登录路径。如果未给定此选项,则默认登录路径名为client。

--password, -p

提示输入密码以写入登录路径。mysql_config_editor显示提示后,键入密码并按Enter键。为了防止其他用户看到密码,mysql_config_editor不回显它。

要指定空密码,请在密码提示下按Enter键。写入登录路径文件的结果登录路径包括如下一

sql 复制代码
password =

--port=port_num, -P port_num

要写入登录路径的TCP/IP端口号。

--socket=file_name, -S file_name

要写入登录路径的Unix套接字文件名。

--user=user_name, -u user_name

要写入登录路径的用户名。

--warn, -w

如果命令试图覆盖现有登录路径,则发出警告并提示用户进行确认。此选项在默认情况下处于启用状态;使用--skip-warn禁用它。

相关推荐
瓜牛_gn1 小时前
mysql特性
数据库·mysql
奶糖趣多多2 小时前
Redis知识点
数据库·redis·缓存
CoderIsArt3 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
师太,答应老衲吧5 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
Yaml46 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
Channing Lewis6 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
追风林6 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
毕业设计制作和分享7 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
ketil277 小时前
Redis - String 字符串
数据库·redis·缓存
Hsu_kk8 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql