【发布时间】:2020-04-18 10:51:07
【问题描述】:
我需要在 python 脚本中使用 mysql 客户端执行一个 sql 文件(我无法使用 python mysql 模块执行查询),数据库是 GCloud 上的 MySQL 实例,我正在使用 @ 连接到该实例987654321@.
我像这样使用 tcp 启动了my_sql_proxy:
./cloud_sql_proxy -instances=<my_instance>=tcp:12367
我正在尝试像这样执行 sql 脚本:
gunzip -c <filename>.sql.gz 2>&1 | mysql --host=127.0.0.1 --port=12367 --user=<user> --password=<password> <dbmane>
这会产生以下错误:
ERROR 1045 (28000): Access denied for user '<myuser>'@'cloudsqlproxy~<some ip>' (using password: YES)
我显然检查了用户/密码/实例是否正确。
指向实际托管在 localhost 上的 mysql 实例的相同命令正在运行。
在运行相同的cloud_sql_proxy 进程的情况下,我可以使用具有相同身份验证信息的Sequel Pro 客户端进行连接,并且我可以使用以下命令连接到数据库:
/rnd/pos/components/mysql --host=127.0.0.1 --port=12367 --user=<myuser> -p <dbname>
>>> Enter password:
>>> Welcome to the MySQL monitor. Commands....
连接后,这是SELECT USER(), CURRENT_USER();的输出(屏蔽)
+--------------------------------------------+-------------------------------------------------+
| USER() | CURRENT_USER() |
+--------------------------------------------+-------------------------------------------------+
| <my user>@cloudsqlproxy~<same ip as above> | <my user>@cloudsqlproxy~<part of the same ip>.% |
+--------------------------------------------+-------------------------------------------------+
我尝试使用 -p[password] 和 --password[=password],输出相同。
为什么 --password 会被阻止?它是cloud_sql_proxy 配置吗?还是 MySQL 实例设置?
我用谷歌搜索和 stackoverflowed,但找不到与我的案例相关的任何内容。
【问题讨论】:
标签: python mysql google-cloud-sql cloud-sql-proxy