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]