MySQL记住密码_技术分享 | mysqlsh 命令行模式 密码保存
作者:胡呈清
愛可生 DBA 團(tuán)隊成員,擅長故障分析、性能優(yōu)化,個人博客:https://www.jianshu.com/u/a95ec11f67a8,歡迎討論。
本文來源:原創(chuàng)投稿
*愛可生開源社區(qū)出品,原創(chuàng)內(nèi)容未經(jīng)授權(quán)不得隨意使用,轉(zhuǎn)載請聯(lián)系小編并注明來源。
命令行模式
mysql shell 如何實現(xiàn)類似 mysql -e "show processlist;" 的效果?即執(zhí)行完就退出登錄,不需要交互,我們經(jīng)常在腳本中這樣使用。那么同樣的,在維護(hù) InnoDB Cluster 時,怎么在腳本中調(diào)用 mysql shell 查看 MGR 集群的狀態(tài)或者對集群做操作呢?語法如下:
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)情況下,此選項設(shè)置為特殊值 default。可以設(shè)置為 來禁用密碼存儲和檢索功能,注意要用 setPersist 才能在退出 mysqlsh 后的下一次生效:
shell.options.setPersist("credentialStore.helper", "")
若是顯示為 “”,則無法使用密碼存儲和檢索,通常是因為沒有安裝 mysql_config_editor,因為 mysql shell 的密碼保存實際也是用 mysql_config_editor 實現(xiàn)的,下面會解釋道具體用法。
credentialStore.savePasswords
此參數(shù)用來控制每次連接時保存密碼的行為:prompt,默認(rèn)值,交互模式下,會出現(xiàn)選擇是否保存密碼;
always,自動保存密碼,沒有交互式選擇;
never,不保存密碼,沒有交互式選擇。
這樣修改:
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"
]
實際上是通過 mysql_config_editor 保存的密碼,所以也可以用 mysql_config_editor print --all 查看 ,與上面輸出的連接串一一對應(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,輸入密碼后都會詢問是否保存密碼,鍵入 “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
也可以通過 mysql_config_editor set 來保存指定連接串的密碼:
mysql_config_editor set --login-path="universe_op@10.186.63.93:3306" --host=10.186.63.93 \
--port=3306 --user=universe_op -p
接下來使用 mysqlsh 登錄時,不需要輸入密碼即可登錄:
刪除連接串密碼
如果要刪除對應(yīng)的連接串密碼,用如下命令:
mysql_config_editor remove --login-path=universe_op@10.186.63.93:3306
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的MySQL记住密码_技术分享 | mysqlsh 命令行模式 密码保存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql外连接_mysql学习-mys
- 下一篇: pm2集群模式mysql配置_配置 PM