Я пытаюсь заставить мой проект Flask App Engine читать данные, хранящиеся в базе данных Cloud SQL MySQL 5.7. Что-то пошло не так, как все, что я получил, это pymysql.err.OperationalError
. Я следовал инструкциям здесь: https://cloud.google.com/sql/docs/mysql/connect-app-engine.
Облачный SQL Admin API включен.
Согласно связанному документу:
App Engine использует служебную учетную запись для авторизации ваших подключений к облаку SQL. Эта учетная запись службы должна иметь правильные разрешения IAM для успешного подключения. Если не указано иное, учетная запись службы по умолчанию имеет формат service-PROJECT_NUMBER@gae-api-prod.google.com.iam.gserviceaccount.com.
На странице IAM, в которой перечислены разрешения для моего проекта, нет члена в указанном формате. «Учетная запись службы App Engine по умолчанию» имеет формат: my-project-name@appspot.gserviceaccount.com. Эта учетная запись службы имеет облачные SQL Роли клиента и редактора.
Пока мои запросы не выполняются, после каждой попытки я отмечаю в Logs Viewer: 7183 [Note] Access denied for user 'www-data'@'cloudsqlproxy~xxx.xxx.xx.xx' (using password: YES)
(IP-адрес отредактирован). Это несколько сбивает с толку, поскольку 'www-data' не тот пользователь, которого я указал в своем коде.
Код, используемый для подключения:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://' + ':' + db_user + '@/' + db_name + '?unix_socket=/cloudsql/' + connection_name
Где я ошибся и как я могу это исправить?