代码改变世界

mysql_config_editor

2018-01-12 11:06  abce  阅读(670)  评论(0编辑  收藏  举报

mysql_config_editor是MySQL5.6.6中引入的,在5.6.10中正式GA。
借助mysql_config_editor工具将登陆MySQL服务的认证信息加密保存在.mylogin.cnf文件(默认位于用户主目录) 。之后,MySQL客户端工具可通过读取该加密文件连接MySQL,避免重复输入登录信息,避免敏感信息暴露。
.mylogin.cnf和默认的my.cnf文件不同,是不能像my.cnf直接查看其中的加密内容的。

 

1.mysql_config_editor的语法

mysql_config_editor [program_options] command [command_options]

  

2.查看帮助

# ./mysql_config_editor  --help
./mysql_config_editor Ver 1.0 Distrib 5.6.37, for linux-glibc2.12 on x86_64
Copyright (c) 2012, 2017, 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]]
  -?, --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.

  

3.创建一个login-path/profile

# mysql_config_editor set --login-path=abce --user=root -p

其中--login-path表示指定通过mysql客户端登录时的标识

创建结束就可以在用户主目录下看到该profile文件了:

# ls -a ~ |grep cnf
.mylogin.cnf

可以根据需要创建多个登陆profile

# mysql_config_editor set --login-path=abce1 --user=root -p
# mysql_config_editor set --login-path=abce2 --user=root -p

  

4.使用profile登陆

# mysql --login-path=abce
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.6.37 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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.

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

mysql> 

  

5.查看所有的login-path/profiles

# mysql_config_editor print --all
[abce]
user = root
password = *****
[abce1]
user = root
password = *****
[abce2]
user = root
password = *****

  

6.移除一个login-path/profile

# mysql_config_editor remove --login-path=abce2
# mysql_config_editor print --all
[abce]
user = root
password = *****
[abce1]
user = root
password = *****

也可以某个login-path中的部分信息,比如:
# mysql_config_editor set --login-path=abce3 --host=localhost
# mysql_config_editor print --all
[abce]
user = root
password = *****
[abce1]
user = root
password = *****
[abce3]
host = localhost
# mysql_config_editor remove --login-path=abce3 --host
# mysql_config_editor print --all
[abce]
user = root
password = *****
[abce1]
user = root
password = *****
[abce3]