在MySQL中, 如果
显示的输入密码去登录的话, 就会有一个Warning显示出来, 提醒这种使用方式会不安全,
信息如下:
[Warning] Using a password on the command line interface can be insecure.
而在写数据库相关的脚本时, 经常会使用到MySQL的client去获取一些数据, 但是这个[Warning]总是出现的话, 还是挺烦人的,
经常会变成这个样子:
琢磨了一段时间, 在这里分享两种方式来避免这种提示的出现~
第三种方式: 修改源代码~
作为一般用户, 几乎不会去考虑~
第二种方式: 常量;
这种方式其实就是利用常量来代替了明文输入密码的这一步骤,
使用方法也很简单, 在脚本中加入如下命令即可
---------------------------------------------
export MYSQL_PWD=<password>
---------------------------------------------
之后在脚本中就不用带上 -p参数了, 直接在命令行试试看~
第一次尝试连接用的是root, 可以发现即使不带上-p参数, 也在后面显示出了Using password: Yes,
说明设定的这个常量已经被当做密码拿去验证登录了;
第二次尝试连接用的是密码对应的账号, 同样不带上-p, 发现数据库可以正常登录, 也没有了那个烦人的Warning~
第一种方式:
mysql_config_editor
mysql_config_editor是官方发布的一个安全加密登录的工具, 能够 定义一个login-path来管理一组登录用的user,password,host;
方便管理但实例多账户 or 多实例多账户;
用法非常简单~
首先要定义一个login-path:

之后会要求输入密码, 密码输入完以后, 就可以使用预设好的login-path来登录了, 效果如下图:
可以看到使用login-path的方式登录时, 完全不需要再使用平时的-u, -p等参数了, mysql client会自动去获取预设好的login-path来进行登录;
当然, Warning也不见了~
不过使用login-path需要安装dev版的mysql client, 且版本要求不低于5.7;
PS: 具体某个小版本就没有再具体验证了;
引申的疑问:
mysql_config_editor把这些信息保存到那里去了? 安全么?
回答: 保存在当前用户的目录下, 是一个隐藏文件~

看看里面的内容~

完全看不懂~因为这个加密过了~所以配置好的login-path还是挺安全的~
PS: mysql_config_editor还有remove, print等参数, 能够简单的管理已经保存好的login-path~
PPS: 修改某个login-path? 重新set嘛~有兴趣的可以在测试环境实际动手试验一下~
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29510932/viewspace-2098853/
,如需转载,请注明出处,否则将追究法律责任。