mysql js 命令行登录_mysqlsh 命令行模式与密码保存-爱可生
原標題:mysqlsh 命令行模式與密碼保存-愛可生
命令行模式
mysql shell 如何實現類似 mysql -e "show processlist;" 的效果?即執行完就退出登錄,不需要交互,我們經常在腳本中這樣使用。那么同樣的,在維護 InnoDB Cluster 時,怎么在腳本中調用 mysql shell 查看 MGR 集群的狀態或者對集群做操作呢?語法如下:
mysqlsh [options] -- shell_object object_method [arguments]
示例:
mysqlsh -h172.16.22.1 -P3306 -uroot -p -- cluster status
可以直接輸出 cluster 狀態信息,等同于:
mysqlsh -h172.16.22.1 -P3306 -uroot -p
var cluster=dba.getCluster()
cluster.status()
配合下面介紹的密碼保存方法,避免在腳本中暴露密碼,也可以避免交互式輸入密碼,可以很方便的查詢狀態或者做一些維護操作,比如:
配置保存密碼
默認設置:
JS > \option -l
...
credentialStore.excludeFilters []
credentialStore.helper default
credentialStore.savePasswords prompt
...
credentialStore.helper
默認情況下,此選項設置為特殊值 default。可以設置為 來禁用密碼存儲和檢索功能,注意要用 setPersist 才能在退出 mysqlsh 后的下一次生效:
shell.options.setPersist("credentialStore.helper", "")
若是顯示為 “”,則無法使用密碼存儲和檢索,通常是因為沒有安裝 mysql_config_editor,因為 mysql shell 的密碼保存實際也是用 mysql_config_editor 實現的,下面會解釋道具體用法。
credentialStore.savePasswords
此參數用來控制每次連接時保存密碼的行為:
prompt,默認值,交互模式下,會出現選擇是否保存密碼;
always,自動保存密碼,沒有交互式選擇;
never,不保存密碼,沒有交互式選擇。
這樣修改:
shell.options.setPersist("credentialStore.savePasswords","always")
查看當前保存了密碼的連接串
可以在 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 查看 ,與上面輸出的連接串一一對應:
[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
設置連接串保存密碼
正常情況下每次使用 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 登錄時,不需要輸入密碼即可登錄:
刪除連接串密碼
如果要刪除對應的連接串密碼,用如下命令:
mysql_config_editor remove --login-path=universe_op@10.186.63.93:3306
關鍵字:愛可生、MySQL數據庫、數據庫運維管理、開源數據庫解決方案返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的mysql js 命令行登录_mysqlsh 命令行模式与密码保存-爱可生的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中string.digits
- 下一篇: linux cmake编译源码,linu