如果您当前服务器mysql版本5.6.6及以后,且在命令行或者shell脚本中mysql语句包含有密码,运行时则会出现警告:Warning: Using a password on the command line interface can be insecure. 这是mysql避免明文密码出现在脚本中做的安全提升。解决方案: mysql_config_editor出现在mysql5.6.6以后的版本,可以给指定的连接和密码生成一个加密文件.mylogin.cnf,默认位于当前用户家目录下,权限600。 通过该文件可以使用mysql、mysqladmin等直接登录,避免明文密码出现在脚本中 使用该特性要求当前主机的mysql版本在5.6.6版本及以上。 配置加密的登录文件:
也可以把把--host 写上 mysql_config_editor set --login-path=ip --host=localhost --user=ip --password --login-path 登录路径名称,可以任意,一个用户,对应一个login-path
--host 主机,可以是IP,localhost,主机域名(前提是你的服务器上可以解析出这个主机域名) --user 能登录mysql 数据库的用户名 --password 密码 注意:这后面不能直接跟=密码,必须 按回车键,输入密码。
输入用户的密码,必须要保证密码正确。
查看生成的文件 vim ~/.mylogin.cnf (生成的加密的登录文件名是固定的不能改)
![]()
![]()
vim \cat无法查看到内容。 mysql_config_editor print --all #可以通过这条命令查看到内容。
一个加密文件中可以添加多个登录路径名称,也就是说,可以写多条语句,但是登录路径名称不能相同。
删除某个用户的加密登陆:mysql_config_editor remove --login-path=root
登录测试:
应用在脚本中:
![]()
重置配置所有的mysql用户的加密登录信息,相当于清除。 mysql_config_editor reset ++++++++++++++++++++++++++ 可以使用以下参数简化命令: mysql_config_editor set -? #查看参数
![]()
![]()
![]()
![]()