• MySQL的mysql_config_editor总结


    mysql_config_editor介绍

     

    mysql_config_editorMySQL自带的一款用于安全加密登录的工具,可以在一些场合避免使用密码明文,例如,写shell脚本时,不用在为在脚本里面写入明文密码纠结了;也可以用于管理多台MySQL实例。另外,像如果使用mysql命令登录数据库,可以避免每次都要输入一堆参数。简单方便。

     

    官方文档介绍如下:

     

    The mysql_config_editor utility enables you to store authentication credentials in an obfuscated login path file named .mylogin.cnf. The file location is the %APPDATA%MySQL directory on Windows and the current user's home directory on non-Windows systems. The file can be read later by MySQL client programs to obtain authentication credentials for connecting to MySQL Server.

     

     

    mysql_config_editor使用

     

    帮助信息查看

     

    # mysql_config_editor --help
    mysql_config_editor Ver 1.0 Distrib 5.7.30, for Linux on x86_64
    Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
     
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
     
    MySQL Configuration Utility.
    Usage: mysql_config_editor [program options] [command [command options]]
      -#, --debug[=#]     This is a non-debug version. Catch this and exit.
      -?, --help          Display this help and exit.
      -v, --verbose       Write more information.
      -V, --version       Output version information and exit.
     
    Variables (--variable-name=value)
    and boolean options {FALSE|TRUE}  Value (after reading options)
    --------------------------------- ----------------------------------------
    verbose                           FALSE
     
    Where command can be any one of the following :
           set [command options]     Sets user name/password/host name/socket/port
                                     for a given login path (section).
           remove [command options]  Remove a login path from the login file.
           print [command options]   Print all the options for a specified
                                     login path.
           reset [command options]   Deletes the contents of the login file.
           help                      Display this usage/help information.

     

     

     

    新增配置login path

     

    mysql_config_editor对应的参数信息如下:

     

    ·         help 显示帮助

    ·         --login-path=name,-G name

    ·         --host=host_name,-h host_name 主机名

    ·         --password,-p 密码,注意这个地方不能使用=直接写入密码

    ·         --port=port_num,-P port_num 端口号

    ·         --socket=file_names,-S file_name 文件名

    ·         --user=user_name,-u user_name 用户名

    ·         --warn,-w 默认开启,提示警告信息,如果要忽略警告,使用--skip-warn 参数

     

     

     

    #mysql_config_editor set --login-path=dbadmin --user=root  --host=localhost --port=3306 --password

     

     

     

    你会发现新增login path后,就会在当前用户的根目录生成隐藏文件.mylogin.cnf(如果是Windows的话,此文件位于%APPDATA%MySQL目录下面)

     

     

    # ls -lrt ~/.mylogin.cnf
    -rw-------. 1 root root 156 Aug 14 15:32 /root/.mylogin.cnf
     
    # hexdump ~/.mylogin.cnf
    0000000 0000 0000 0e16 0c1f 1014 1915 0910 1b01
    0000010 0b08 000e 0b11 1516 0010 0000 7c87 f22d
    0000020 b92c 751f 4750 d5bd 3db3 1558 0010 0000
    0000030 7b3b 4bcf a986 0921 5ea2 197f 5ad7 9cd2
    0000040 0020 0000 2b28 3ecc ffee 9d8e 70c5 c9ac
    0000050 8a40 2e89 74dd a9db f67f 34d1 f0b2 10b5
    0000060 d7f0 2c17 0020 0000 30b5 8f7f 9f20 dc0d
    0000070 63a8 c83e 17a0 7792 997d 23e4 02ee c788
    0000080 de49 c2da cd06 9993 0010 0000 1e9f c904
    0000090 e3dd ea6c 8db5 d28a b17e dfc7          
    000009c

     

     

    打印/查看配置login path

     

     

    # mysql_config_editor print --login-path=dbadmin

    [dbadmin]

    user = root

    password = *****

    host = localhost

    port = 3306

     

     

     

    #查看所有的login path信息

     

    # mysql_config_editor print --all

     

    clip_image001

     

     

    清空配置login path

     

     

    # mysql_config_editor reset

    # mysql_config_editor print --all

     

     

    删除配置login path

     

     

    # mysql_config_editor remove --login-path=dbadmin

     

     

    也可以删除login path中的某一个项。

     

    -h,host=name 添加host到登陆文件中

    -Glogin-path=name 在登录文件中为login path添加名字(默认为client

    -p,password 在登陆文件中添加密码(该密码会被mysql_config_editor自动加密)

    -uuser 添加用户名到登陆文件中

    -S,socket=name 添加sock文件路径到登陆文件中

    -Pport=name 添加登陆端口到登陆文件中

     

     

    mysql_config_editor“Bug”

     

    1mysql_config_editor can not deal password with "#"

     

     

    使用mysql_config_editor创建了login path后,使用是遇到这个错误。

     

    # mysql --login-path=admin

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

     

     

     

    出错的原因是账号密码中包含特殊字符#,在创建login path的时候必须用双引号将密码包裹,才可以避免遇到这种错误。其实这个也不完全算一个Bug,因为解析.mylogin.cnf文件时,将#当成了注释符号。

     

    The problem is that the .mylogin.cnf file interprets the # as the beginning of a comment.

     

     

     

    参考资料:

     

    https://bugs.mysql.com/bug.php?id=95597

    https://dev.mysql.com/doc/refman/8.0/en/mysql-config-editor.html

  • 相关阅读:
    event.preventDefault() 火狐下没有作用。
    输入框禁止键盘输入数字意外的字符
    js遍历数组重复值和数组中对象重复值
    js获取30、X天前得时间
    docker 命令详解
    右键禁止浏览器自带的右键
    Kncokout之绑定事件三
    转:Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载
    异常: java.security.InvalidKeyException: Illegal key size
    转:Java并发编程:深入剖析ThreadLocal
  • 原文地址:https://www.cnblogs.com/kerrycode/p/13502839.html
Copyright © 2020-2023  润新知