Logging into GCP SQL: How to Ensure PromptSession Is Imported or Otherwise Resolve

风流意气都作罢 提交于 2020-01-25 07:28:06

问题


I am trying to use the Cloud Shell to update some user permissions. I am logging in using gcloud sql connect my-instance --user=root

gcloud sql connect my-instance
Whitelisting your IP for incoming connection for 5 minutes...done.
Connecting to database with SQL user [sqlserver].********************************************************************************
Python command will soon point to Python v3.7.3.
Python 2 will be sunsetting on January 1, 2020.
See http://https://www.python.org/doc/sunset-python-2/
Until then, you can continue using Python 2 at /usr/bin/python2, but soon
/usr/bin/python symlink will point to /usr/local/bin/python3.
To suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
The command will automatically proceed in  seconds or on any key.
********************************************************************************
> Password:
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/local/lib/python2.7/dist-packages/mssqlcli/main.py", line 117, in <module>
    main()
  File "/usr/local/lib/python2.7/dist-packages/mssqlcli/main.py", line 110, in main
    run_cli_with(mssqlcli_options)
  File "/usr/local/lib/python2.7/dist-packages/mssqlcli/main.py", line 43, in run_cli_with
    from mssqlcli.mssql_cli import MssqlCli
  File "/usr/local/lib/python2.7/dist-packages/mssqlcli/mssql_cli.py", line 18, in <module>
    from prompt_toolkit.shortcuts import PromptSession, CompleteStyle
ImportError: cannot import name PromptSession

A) I have made the root user's password so insecure and easy there is no way I am mistyping it.

B) It is the third of January, so I really don't know what this Python version error is on about. I made the file but FYI ~/.cloudshell did not exist so I had to make it first. Even so, it just suppresses the version warning, the main error persists when I try to log in.

The documentation acknowledges there are a couple other login methods using glcoud beta sql connect, but that gets me another error

2020/01/04 18:38:41 Rlimits for file descriptors set to {&{8500 1048576}}
2020/01/04 18:38:41 invalid json file "/tmp/tmp.s38C662KKr/legacy_credentials/me@gmail.com/adc.json": open /tmp/tmp.s38C662KKr/legacy_credentials/me@gmail.com/adc.json: no such file or directory
ERROR: (gcloud.beta.sql.connect) Failed to start the Cloud SQL Proxy.

Same for alpha.

This is the first thing I have typed into Cloud Shell, so I can't imagine what could have broken PromptSession.

How can I resolve this error and log into SQL Server using Cloud Shell?


回答1:


There most likely is an issue while attempting to connect from the Cloud Shell (I managed to connect from a Compute Engine instance with this command); possibly related to the Python run-time / environment variable. It has been reported here. Engineering is aware and are looking into it.



来源:https://stackoverflow.com/questions/59596129/logging-into-gcp-sql-how-to-ensure-promptsession-is-imported-or-otherwise-resol

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!