点击上方☝SpringForAll社区轻松关注!
及时获取有趣有料的技术文章
本文来源:http://rrd.me/g7J9e
我们知道在命令行下可以使用下面的命令连接 MySQL ,其中 xxx 为密码(注意和 -p 参数之间没有空格)。
$ mysql -h 127.0.0.1 -u root -pxxx
可是在命令行下将密码明文显示出来并不是一个好主意,可能会被其他登录到这台计算机上的人使用ps aux
命令查看到。而且每次连接数据库时都要再输入一遍主机名、用户名、密码,实在让人讨厌。
其实 MySQL 可以将数据库的连接配置保存在文件中,通过读取配置文件来连接数据库。首先,我们创建一个文件:
$ vim ~/mysql/f
在配置文件中写入连接信息:
[client]``host=127.0.0.1``user=root``password=xxx``database=db
然后,在命令行中使用下面的命令就可以连接数据库了:
$ mysql --defaults-file=~/mysql/f
「------------------ 更正 ----------------------」
使用ps
查看 MySQL 在命令行中的密码很早以前就已经被人注意到了,而且 MySQL 也已经修复了该问题。现在,如果使用了mysql -h 127.0.0.1 -u root -pxxx
这样带密码的命令行,在ps
中会显示出mysql -h 127.0.0.1 -u root -px xxxxxxx
来,如下图所示:
这是因为 MySQL 在启动时重写了命令行参数,对密码做了隐藏处理。但是,尽管如此,还是应该「养成不在命令行参数中指定明文密码的习惯」,而是通过手工输入,或是通过文件的方式。
参考
/questions/233645/save-mysql-logins/questions/88665/how-does-ps-know-to-hide-passwords/questions/399262/connect-to-mysql-trough-command-line-without-need-root-password●ES数十亿数据量级的场景下如何优化查询性能?
●什么?知乎又挂了?我们来聊聊微服务的高可用如何保障
●Spring Cloud Gateway 原生的接口限流该怎么玩
●那些年非常火的MyCAT是什么?
●Java14带来了许多新功能
如果资源对你有帮助的话
❤️给个「在看」,是最大的支持❤️