shell-mysql密码不能再命令行显示的警告?一个配置搞定

1.情况描述

mysql: [Warning] Using a password on the command line interface can be insecure.

        shell脚本,连接远程mysql服务器的时候每次连接都有这一段日志显示,很烦,怎么在连接的时候不显示这段呢?

        这段是密码打在了命令行上,他会警告是不安全的,一般我们用 -p 不会提示这个,用-p'password' 连接就会弹出这个

2.mysql_config_editor安全配置

        脚本里可以写 2>/dev/null 的方式把warning这种警告丢弃,或者通过配置环境变量mysql_pwd来实现警告消失

        我们这里通过客户端自带的命令来操作

       (1)简单介绍这个命令

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

mysql_config_editor对应的参数信息如下:


·         --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 参数

        (2)命令配置如下

#配置  路径名testmy,远程ip,mysql用户,端口
mysql_config_editor set --login-path=testmyclient --host=192.168.80.80 --user=testmy --port=3306  -p
#远程登陆mysql
mysql --login-path=testmyclient -D testmydb

        这里输入一下数据库用户testmy的登陆密码 ,再通过配置的登陆路径登陆mysql

        (3)查看或者修改这登陆路径参数 

        新增login path后,就会在当前用户的根目录生成隐藏文件.mylogin.cnf

        (如果是Windows的话,此文件位于%APPDATA%\MySQL目录下面)

                查看信息

#查看所有的login path信息
mysql_config_editor print --all

#查看指定的login path信息
mysql_config_editor print --login-path=testmyclient

#删除login path信息
mysql_config_editor remove --login-path=dbadmin
#也可以通过上面的选项删除指定信息
mysql_config_editor remove --login-path=dbadmin --port

        这里把端口选项删除 

3.在shell脚本里使用登陆路径进入mysql

        可以通过第二步,手动配置,然后在shell脚本里直接使用登陆路径;

        也可以直接写在shell脚本里,通过判断 mysql_config_editor print 判断这个路径是不是配置过,如果没配,就第一次执行的时候会弹出输入密码选项配置;如果配置了就略过这一步,这里就不配置了,直接用上面手动配置的

#!/bin/bash

#报错立刻停止
set -e

#连接的数据库名
MYSQL_DATABASE="testmydb"

#执行查询
mysql --login-path=testmyclient -D $MYSQL_DATABASE <<eof
select now();  -- 查询当前时间
eof

        配置完安全选项,这样登陆,密码就不会在命令行里看到喽 

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值