• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mysql_config_editor是MySQL配置实用程序

    mysql_config_editor实用程序,可以存储在一个名为模糊化的登录路径文件认证证书.mylogin.cnf。文件位置是%APPDATA%\MySQLWindows上的目录,非Windows系统上是当前用户的主目录。稍后,MySQL客户端程序可以读取该文件,以获得用于连接到MySQL Server的身份验证凭据。

    .mylogin.cnf与其他选项文件类似,登录路径文件的清晰格式由选项组组成。在每个选项组.mylogin.cnf被称为“登录路径,”这是一组只允许特定的选项:hostuserpasswordportsocket。将登录路径选项组视为一组选项,用于指定要连接到哪个MySQL服务器以及要作为身份验证的帐户。这是一个清晰的示例:

    [client]
    user = mydefaultname
    password = mydefaultpass
    host = 127.0.0.1
    [mypath]
    user = myothername
    password = myotherpass
    host = localhost
    

    当您调用客户端程序以连接到服务器时,客户端.mylogin.cnf与其他选项文件结合使用。它的优先级高于其他选项文件,但低于客户端命令行上显式指定的选项。有关使用选项文件的顺序的信息,请参见“使用选项文件”。

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

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

    • client如果您未指定任何选项来明确指示要使用的登录路径,则默认情况下, mysql_config_editor在登录路径上运行。--login-path=name
    • 如果没有--login-path选项,则客户端程序将从登录路径文件中读取与从其他选项文件读取的选项组相同的选项组。考虑以下命令:

      shell>mysql
      

      默认情况下,mysql客户端从其他选项文件读取[client][mysql]组,因此它也从登录路径文件读取它们。

    • 通过一个--login-path选项,客户端程序还可以从登录路径文件中读取命名的登录路径。从其他选项文件读取的选项组保持不变。考虑以下命令:

      shell>mysql --login-path=mypath
      

      MySQL的客户端读取[client][mysql]其他选项的文件,并[client][mysql]以及[mypath]从登录路径文件。

    • 即使使用该--no-defaults选项,客户端程序也会读取登录路径文件。即使--no-defaults存在密码,这也可以以比在命令行上更安全的方式指定密码。

    mysql_config_editor.mylogin.cnf文件进行模糊处理,因此无法将其读取为明文,并且在客户端程序未对其进行模糊处理时,其内容仅在内存中使用。这样,密码可以以非明文格式存储在文件中,并在以后使用,而无需在命令行或环境变量中公开。mysql_config_editor提供了一个print用于显示登录路径文件内容的命令,但是即使在这种情况下,密码值也会被屏蔽,以便永远不会以其他用户可以看到的方式出现。

    mysql_config_editor所使用的混淆处理可防止密码.mylogin.cnf以明文形式出现,并通过防止无意中暴露密码来提供安全措施。例如,如果您my.cnf在屏幕上显示一个常规的,未混淆的选项文件,则其中包含的任何密码对于任何人都是可见的。使用.mylogin.cnf,那是不正确的。但是使用的混淆不会阻止坚定的攻击者,因此您不应认为它是坚不可摧的。可以在您的计算机上获得系统管理特权以访问您的文件的用户可以不.mylogin.cnf费力地使文件变得模糊。

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

    像这样调用mysql_config_editor

    shell>mysql_config_editor [program_options] command [command_options]
    

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

    命令参数如下:

    • program_options由常规的mysql_config_editor选项组成。
    • command指示要对.mylogin.cnf登录路径文件执行的操作。例如,set将登录路径写入文件,remove删除登录路径,并print显示登录路径内容。
    • command_options指示命令特定的任何其他选项,例如登录路径名称和在登录路径中使用的值。

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

    shell>mysql_config_editor --help set
    shell>mysql_config_editor set --help
    

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

    假设您要建立一个client定义默认连接参数的登录路径,以及一个remote用于连接到主机MySQL服务器的附加登录路径remote.example.com。您要登录如下:

    • 默认情况下,使用用户名和密码为localuser和的本地服务器localpass
    • 使用用户名和密码为remoteuser和的远程服务器remotepass

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

    shell>mysql_config_editor set --login-path=client
    --host=localhost --user=localuser --password
    Enter password: enter password "localpass" here
    shell>mysql_config_editor set --login-path=remote
    --host=remote.example.com --user=remoteuser --password
    Enter password: enter password "remotepass" here
    

    mysql_config_editorclient默认使用登录路径,因此--login-path=client可以从第一个命令中省略该选项,而不会改变其效果。

    要参见mysql_config_editor写入.mylogin.cnf文件的内容,请使用以下print命令:

    shell>mysql_config_editor print --all
    [client]
    user = localuser
    password = *****
    host = localhost
    [remote]
    user = remoteuser
    password = *****
    host = remote.example.com
    

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

    如果未指定--all显示所有登录路径或显示命名的登录路径,则默认情况下(如果存在),该命令将显示登录路径。--login-path=nameprintclient

    如前面的示例所示,登录路径文件可以包含多个登录路径。这样,mysql_config_editor可以轻松设置多个“个性”以连接到不同的MySQL服务器,或使用不同的帐户连接到给定的服务器。--login-path当您调用客户端程序时,可以使用该选项按名称选择其中的任何一个。例如,要连接到远程服务器,请使用以下命令:

    shell>mysql --login-path=remote
    

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

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

    shell>mysql --login-path=client
    

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

    shell>mysql
    

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

    mysql_config_editor按照创建顺序将登录路径添加到登录路径文件中,因此应首先创建更通用的登录路径,然后再创建更特定的路径。如果需要在文件内移动登录路径,可以将其删除,然后重新创建以将其添加到末尾。例如,client登录路径更为通用,因为所有客户端程序都可以读取它,而mysqldump登录路径仅由 mysqldump读取。稍后指定的选项将覆盖先前指定的选项,因此将登录路径置于order中clientmysqldump可使 mysqldump特定的选项覆盖client选项。

    mysql_config_editor中使用该set命令创建登录路径时,无需指定所有可能的选项值(主机名,用户名,密码,端口,套接字)。仅将给定的那些值写入路径。当您调用客户端路径以连接到MySQL服务器时,可以在其他选项文件中或在命令行中指定以后需要的所有缺失值。在命令行上指定的任何选项都将覆盖在登录路径文件或其他选项文件中指定的选项。例如,如果登录路径中的凭据也适用于主机,则按如下所示连接到该主机上的服务器:remoteremote2.example.com

    shell>mysql --login-path=remote --host=remote2.example.com
    

    mysql_config_editor常规选项

    mysql_config_editor支持以下常规选项,可以在命令行上命名的任何命令之前使用它们。有关命令特定选项的说明,请参见mysql_config_editor命令和命令特定选项。

    表4.20 mysql_config_editor常规选项

    选项名称描述
    -调试编写调试日志
    -救命显示帮助信息并退出
    -详细详细模式
    -版显示版本信息并退出

    • --help-?

      显示一般帮助消息并退出。

      要参见特定于命令的帮助消息,请按以下方式调用mysql_config_editor,其中command以外的命令是help

      shell>mysql_config_editor command --help
      
    • --debug[=debug_options]-#debug_options

      编写调试日志。典型的debug_options字符串是。默认值为。d:t:o,file_named:t:o,/tmp/mysql_config_editor.trace

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

    • --verbose-v

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

    • --version-V

      显示版本信息并退出。

    mysql_config_editor命令和特定于命令的选项

    本节描述了允许的mysql_config_editor命令,以及每个命令中在命令行上的命令名称之后允许的特定于命令的选项。

    另外,mysql_config_editor支持可在任何命令之前使用的常规选项。有关这些选项的说明,请参见 mysql_config_editor常规选项。

    mysql_config_editor支持以下命令:

    • help

      显示一般帮助消息并退出。此命令没有以下选项。

      要参见特定于命令的帮助消息,请按以下方式调用mysql_config_editor,其中command以外的命令是help

      shell>mysql_config_editor command --help
      
    • print[options]

      以清晰的形式打印登录路径文件的内容,但密码显示为*****

      默认登录路径名称是client如果未命名登录路径。如果两个--all--login-path给出,--all优先。

      print命令允许在命令名称后使用以下选项:

      • --help-?

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

        要参见常规帮助消息,请使用mysql_config_editor --help

      • --all

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

      • --login-path=name-G name

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

    • remove[options]

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

      此命令仅从选项,如由被指定的登录路径移除--host--password--port--socket,和--user选项。如果没有给出这些选项,则remove删除整个登录路径。例如,以下命令仅从登录路径中删除该user选项,mypath而不是整个mypath登录路径:

      shell>mysql_config_editor remove --login-path=mypath --user
      

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

      shell>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

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

    • reset[options]

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

      reset命令允许在命令名称后使用以下选项:

      • --help-?

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

        要参见常规帮助消息,请使用mysql_config_editor --help

    • set[options]

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

      此命令将写入唯一选项,如由被指定的登录路径--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。写入登录路径文件的结果登录路径将包含以下行:

        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禁用它。