文档章节

mysql安全之loginpath

Mr_Qi
 Mr_Qi
发布于 2017/07/24 10:25
字数 600
阅读 456
收藏 49

用了许久的mysql,最近发现了一个新玩具。

对于兼运维的开发同学来说,需要备份数据库。我们一般通过crontab来实现。

执行

crontab -e
30 1 * * * /data/shell/backupdb.sh;

我们在凌晨1:30执行备份数据库操作

脚本如下

/usr/local/mysql/bin/mysqldump -uroot -pXXXX --skip-lock-tables --databases f6dms_trial $(mysql -uroot -pXXXX -Df6dms_trial -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms_trial."$1}'|xargs)| gzip > /data/backup/f6dms-trial_`date '+%Y-%m-%d-%H:%M:%S'`.sql.gz;
/usr/local/mysql/bin/mysqldump -uroot -pXXXX --skip-lock-tables --databases f6db_trial f6report_new_trial | gzip > /data/backup/f6db-trial_`date '+%Y-%m-%d-%H:%M:%S'`.sql.gz;

这个关于忽略指定数据表(不定个数)的可以参考mysqldump之跳过指定表

我们这边的显式写上了db的用户名密码,如果该脚本我们是通过svn管理的,那么很容易出现db的用户名密码泄露,导致出现一些安全隐患。

mysql在5.6之后提供了loginpath功能。

loginpath的官方介绍如下

The best way to specify server connection information is with your .mylogin.cnf file. Not only is this file encrypted, but any logging of the utility execution does not expose the connection information. Thus, no user names, passwords, ports, etc. are visible in the log. This is the preferred method for using MySQL Utilities to connect to servers.

Utilities support the use of login-paths in the connection string provided they use the following format login-path-name[:port][:socket] where the port and socket parameters are optional. If used, these optional parameters override the respective options from the specified login-path file.

When using login-paths, there are no default values except on Posix systems when specifying a socket. In this case, the host option defaults to localhost on port 3306. This means that combining the values specified in the login-path with the two optional values port and socket, one needs to specify at least a user, a hostname and a port or socket.

Use the mysql_config_editor tool (http://dev.mysql.com/doc/en/mysql-config-editor.html) to add the connection information as follows.

shell> mysql_config_editor set --login-path=instance_13001 --host=localhost --user=root --port=13001 --password
Enter password: <Password is prompted to be inserted in a more secure way>

我们可以如下执行

mysql_config_editor set --login-path=test --user=root --host=localhost --password
Enter password: (输入密码)
mysql --login-path=test

这样就可以登录成功。

对应会生成.mylogin.cnf 文件

打开后,基本是编码过后的内容,较为安全

这样我们也不需要再显示的写用户名密码了,系统的安全进一步得到提升。

新的代码如下

/usr/local/mysql/bin/mysqldump --login-path=test --skip-lock-tables --databases f6dms_trial $(mysql --login-path=test -Df6dms_trial -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms_trial."$1}'|xargs)| gzip > /data/backup/f6dms-trial_`date '+%Y-%m-%d-%H:%M:%S'`.sql.gz;
/usr/local/mysql/bin/mysqldump --login-path=test --skip-lock-tables --databases f6db_trial f6report_new_trial | gzip > /data/backup/f6db-trial_`date '+%Y-%m-%d-%H:%M:%S'`.sql.gz;

 

© 著作权归作者所有

共有 人打赏支持
Mr_Qi

Mr_Qi

粉丝 273
博文 350
码字总数 359193
作品 0
南京
程序员
加载中

评论(5)

clouddyy
clouddyy
好内容,收藏起来
Mr_Qi
Mr_Qi

引用来自“Abeldu”的评论

cnf存svn?

回复@Abeldu : 一般来说配置是要管理的,运维同学的代码也要版本管理啊
Abeldu
Abeldu
cnf存svn?
p
pz9042
学习了
zzuqiang
zzuqiang
这个挺好的赞一个
MySQL之登陆密码加密认证脚本

一、登陆密码加密认证脚本应用场景 日常操作,经常明文指定了MySQL密码来登录MySQL服务,在登录成功之后就会抛出下面的警告: [root@git-server ~]# mysql -uroot -p'wujianwei' 对于要求严格...

wjw555
07/21
0
0
session过期跳转登录页面

项目需要做一个自动登出的功能,查询了网上的资料,一开始准备用session监听做,按照下面方式配置监听器 1.在项目的web.xml文件中添加如下代码: ? 2.编写java类。 ? 配置完成后等session失效...

mrliuze
2014/12/17
0
0
实现session超时后自动跳转到登陆页面(前台JS,JAVA,判断是否Ajax请求)

JS实现页面超时后自动跳转到登陆页面 网友方案: 实际操作: java 后台 过滤器实现 客户端JS,用于ajax请求session超时 对于jquery 对于extjs的ajax请求 如果使某个ajax请求不受全局方法的影...

习惯了-想你
2016/12/13
80
0
PHP语法求解释: s/[^$OK_CHARS]/_/go;

请帮解释一下以下PHP脚本(.cgi)格式每行的意义。特别是s/[^$OK_CHARS]/_/go;这句看不懂。 谢谢! 从注释看,这段是拿来处理参数防注入的。 前面没有代码了(只有注释)。 # Our own path $...

龍禳
2013/07/07
314
10
Install Mysql with SELinux on

前言: 今日在部署mysql应用时,遇到mysql无法启动错误 环境: 系统:centos 6.8 x64 mysql:mysql 5.7 问题: 采用mysql 官方yum 源安装mysql5.7,安装后修改了my.cnf 默认的datadir 路径为...

lylspecter
2016/09/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

AIX 系统 (资源)

AIX--zabbix agent的编译安装以及遇到的“坑” 荐 : http://blog.51cto.com/lythjq/2128354 AIX--操作系统安装(AIX 6.1) : http://blog.51cto.com/lythjq/2128119...

寰宇01
23分钟前
0
0
Spring 转换 model 为 json 时增加属性

缘起 目前的项目中有个需求是在附件对象转换成 json 时增加个 url 属性,以前的方式是在返回附件对象或列表时候做一次统一处理,这次想看看 spring 或者 jackson fasterxml 是否自带类似功能...

郁也风
23分钟前
0
0
10大PHP比特币开源项目

如果你是一个Phper,如果你希望学习区块链,那么本文列出的 10个开源的Php比特币项目,将有助于你了解在自己的应用中 如何加入对比特币的支持。 如果你希望快速掌握使用Php对接比特币钱包的方...

汇智网教程
51分钟前
1
0
springclould feign客户端添加全局参数

用springclould feign作为调用服务的客户端,一般来说参数可以写在feignclient的方法参数里 有时需要所有feign请求都统一添加一些参数,例如token用于鉴权等,可以这样做: 添加一个配置类,...

canneljls
52分钟前
1
0
win32截屏并rgb24转yuv420

//最终f的内存布局为BGRA格式,需要保证buf长度足够(>w*h*4)void ScreenCap(void* buf, int w, int h){ HWND hDesk = GetDesktopWindow(); HDC hScreen = GetDC(hDesk); ......

styleman
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部