我需要在python脚本中使用mysql客户端执行sql文件(我无法使用python mysql模块执行查询),数据库是GCloud上的MySQL实例,我正在使用[C0连接到该实例]。
我像这样使用tcp启动了cloud_sql_proxy
:
my_sql_proxy
而且我正在尝试像这样执行sql脚本:
./cloud_sql_proxy -instances=<my_instance>=tcp:12367
这将产生以下错误:
gunzip -c <filename>.sql.gz 2>&1 | mysql --host=127.0.0.1 --port=12367 --user=<user> --password=<password> <dbmane>
我显然检查过用户/密码/实例正确。
指向实际托管在本地主机上的mysql实例的同一命令正在工作。
在运行相同的ERROR 1045 (28000): Access denied for user '<myuser>'@'cloudsqlproxy~<some ip>' (using password: YES)
进程的情况下,我可以使用具有相同身份验证信息的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]
配置吗?还是MySQL实例设置?我在Google上搜索并出现堆栈溢出的情况,但找不到与我的案子相关的任何内容。
我怀疑cloud_sql_proxy
默认情况下会寻找套接字,而mysql
明确使用TCP。