Мне нужно выполнить файл sql с помощью клиента mysql в сценарии python (я не могу выполнить запросы с использованием модуля python mysql), база данных является экземпляром MySQL в GCloud я подключаюсь к этому экземпляру, используя cloud_sql_proxy
.
Я запустил my_sql_proxy
, используя tcp, вот так:
./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)
Я, очевидно, проверил правильность имени пользователя / pwd / instance.
Та же команда указывает к mysql экземпляру, фактически размещенному на localhost, работает.
При том же запущенном процессе 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 настройка экземпляра? Я погуглил и переполнился стеком, но не могу найти ничего подходящего для моего случая.