mysql_config_editor-存储数据库连接信息的工具

2020-05-08  本文已影响0人  月饮沙

本文问题

  1. 用什么方法可以替代使用用户名密码登录数据库?
  2. login-path的构成是什么样的?
  3. 如何配置login-path
  4. 如何查看login-path?
  5. login-path的作用顺序?

mysql_config_editor是一个用来存储数据库连接信息的工具。

存放位置

mysql_config_editor将密码信息存放在当前用户的home目录下的.mylog.cnf文件中.该文件是加密保存的。

内容说明

.mylog.cnf中,每个记录保存为一个选项组,每个选项组就是一个login-path。每个选项组中可以包括hostportuserpasswordsocket信息
如:

[client] #选项组名
host=localhost
user=root
password=xxxxxx

使用方法

mysql --login-path=client
注意:

[client]
host = localhost
user = root
password = *****
[remote]
host = 192.168.1.1
port = 5722

则:
mysql --login-path=remote
等同于
mysql --host=192.168.1.1 --port=5722 --user=root --password=xxxxxx

虽然用户名和密码在remote里面没有指定,但是因为在client中指定了,所以MySQL也会读取到这两个信息。

配置方法

通过mysql_config_editor可以配置login-path,具体方法如下:

增加login-path

mysql_config_editor set --login-path=name --user=root --host=localhost --port=3306 --password
注意这里password不能直接=value,而是需要命令执行后在交互界面进行输入

删除login-path

删除执行login-path中的一个选项

mysql_config_editor remove --login-path=name --user

删除指定login-path

mysql_config_editor remove --login-path=name

删除所有login-path

mysql_config_editor reset

查看login-path

查看所有login-path

mysql_config_editor print --all
在输出中,密码会以"******"代替。

查看指定login-path

mysql_config_editor print --login-path=name

问题答案

  1. 用什么方法可以替代使用用户名密码登录数据库?
    使用--login-path替代用户名和密码,--login-path可以使用mysql_config_editor进行配置和查看,记录保存在当前用户home目录的.mylog.cnf文件中,该文件是加密的,不能明文查看和修改。--login-path只对设置它的用户有效。
  2. login-path的构成是什么样的?
[client]  #选项组名
host = localhost
port = 3306
user = root
password = *****
socket = /tmp/mysql.sock
  1. 如何配置login-path
# 添加login-path
mysql_config_editor set --login-path=name --user=root --host=localhost --port=3306 --password 
# 删除login-path
# 删除所有
mysql_config_editor reset
# 删除指定选项组
mysql_config_editor remove --login-path=name
# 删除指定选项组中的某个选项
mysql_config_editor remove --login-path=name --user
  1. 如何查看login-path?
# 查看所有
mysql_config_editor print --all 
# 查看指定选项组
mysql_config_editor print --login-path=name
  1. login-path的作用顺序?
    如果没有指定--login-path,默认读取[client]选项组。如果指定了--login-path=name,会读取[client][name]选项组,[name]组中指定的选项覆盖[client]选项组中的选项
上一篇下一篇

猜你喜欢

热点阅读