MySQL记住密码_技术分享 | mysqlsh 命令行模式 密码保存
作者:胡呈清
愛(ài)可生 DBA 團(tuán)隊(duì)成員,擅長(zhǎng)故障分析、性能優(yōu)化,個(gè)人博客:https://www.jianshu.com/u/a95ec11f67a8,歡迎討論。
本文來(lái)源:原創(chuàng)投稿
*愛(ài)可生開(kāi)源社區(qū)出品,原創(chuàng)內(nèi)容未經(jīng)授權(quán)不得隨意使用,轉(zhuǎn)載請(qǐng)聯(lián)系小編并注明來(lái)源。
命令行模式
mysql shell 如何實(shí)現(xiàn)類似 mysql -e "show processlist;" 的效果?即執(zhí)行完就退出登錄,不需要交互,我們經(jīng)常在腳本中這樣使用。那么同樣的,在維護(hù) InnoDB Cluster 時(shí),怎么在腳本中調(diào)用 mysql shell 查看 MGR 集群的狀態(tài)或者對(duì)集群做操作呢?語(yǔ)法如下:
mysqlsh [options] -- shell_object object_method [arguments]
示例:
mysqlsh -h172.16.22.1 -P3306 -uroot -p -- cluster status
可以直接輸出 cluster 狀態(tài)信息,等同于:
mysqlsh -h172.16.22.1 -P3306 -uroot -p
var cluster=dba.getCluster()
cluster.status()
配合下面介紹的密碼保存方法,避免在腳本中暴露密碼,也可以避免交互式輸入密碼,可以很方便的查詢狀態(tài)或者做一些維護(hù)操作,比如:
配置保存密碼
默認(rèn)設(shè)置:
JS > \option -l
...
credentialStore.excludeFilters []
credentialStore.helper default
credentialStore.savePasswords prompt
...
credentialStore.helper
默認(rèn)情況下,此選項(xiàng)設(shè)置為特殊值 default。可以設(shè)置為 來(lái)禁用密碼存儲(chǔ)和檢索功能,注意要用 setPersist 才能在退出 mysqlsh 后的下一次生效:
shell.options.setPersist("credentialStore.helper", "")
若是顯示為 “”,則無(wú)法使用密碼存儲(chǔ)和檢索,通常是因?yàn)闆](méi)有安裝 mysql_config_editor,因?yàn)?mysql shell 的密碼保存實(shí)際也是用 mysql_config_editor 實(shí)現(xiàn)的,下面會(huì)解釋道具體用法。
credentialStore.savePasswords
此參數(shù)用來(lái)控制每次連接時(shí)保存密碼的行為:prompt,默認(rèn)值,交互模式下,會(huì)出現(xiàn)選擇是否保存密碼;
always,自動(dòng)保存密碼,沒(méi)有交互式選擇;
never,不保存密碼,沒(méi)有交互式選擇。
這樣修改:
shell.options.setPersist("credentialStore.savePasswords","always")
查看當(dāng)前保存了密碼的連接串
可以在 mysqlsh 中查看:
JS > shell.listCredentials()
[
"root@localhost",
"universe_op@10.186.63.93:3306",
"root@127.0.0.1:3306"
]
實(shí)際上是通過(guò) mysql_config_editor 保存的密碼,所以也可以用 mysql_config_editor print --all 查看 ,與上面輸出的連接串一一對(duì)應(yīng):
[root@10-186-63-93 ~]# mysql_config_editor print --all
[universe_op@10.186.63.93:3306]
user = universe_op
password = *****
host = 10.186.63.93
port = 3306
[root@localhost]
user = root
password = *****
host = localhost
[root@127.0.0.1:3306]
user = root
password = *****
host = 127.0.0.1
port = 3306
設(shè)置連接串保存密碼
正常情況下每次使用 mysqlsh 連接 MySQL Server,輸入密碼后都會(huì)詢問(wèn)是否保存密碼,鍵入 “Y” 即可保存密碼:
[root@10-186-63-93 ~]# mysqlsh universe_op@10.186.63.93:3306
Please provide the password for 'universe_op@10.186.63.93:3306': ****
Save password for 'universe_op@10.186.63.93:3306'? [Y]es/[N]o/Ne[v]er (default No):Y
也可以通過(guò) mysql_config_editor set 來(lái)保存指定連接串的密碼:
mysql_config_editor set --login-path="universe_op@10.186.63.93:3306" --host=10.186.63.93 \
--port=3306 --user=universe_op -p
接下來(lái)使用 mysqlsh 登錄時(shí),不需要輸入密碼即可登錄:
刪除連接串密碼
如果要?jiǎng)h除對(duì)應(yīng)的連接串密碼,用如下命令:
mysql_config_editor remove --login-path=universe_op@10.186.63.93:3306
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的MySQL记住密码_技术分享 | mysqlsh 命令行模式 密码保存的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql外连接_mysql学习-mys
- 下一篇: linux cmake编译源码,linu