我想从在谷歌数据流上运行的 apache beam 管道连接谷歌云 sql postgres 实例。
我想使用 Python SDK 来完成此操作。
我无法为此找到适当的文档。
在云SQL如何指导我没有看到任何数据流文档。
https://cloud.google.com/sql/docs/postgres/
有人可以提供文档链接/github 示例吗?
我正在尝试将 Laravel 连接到本地 Google mysql 实例。
.env 文件
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:GptV9AIxUX7TuPkKxbLs54DLjivt2wCmuG37qsnqxJU=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=**********
DB_USERNAME=**********
DB_PASSWORD=**********
DB_SOCKET=/cloudsql/[INSTANCE NAME]
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
Run Code Online (Sandbox Code Playgroud)
我正在使用这个 cloud_sql_proxy 命令:
~/Downloads/cloud_sql_proxy -instances=/cloudsql/[INSTANCE_ID]=tcp:3306
Run Code Online (Sandbox Code Playgroud)
并且它工作正常,
2018/07/18 13:46:29 Listening on 127.0.0.1:3306 for /cloudsql/[INSTANCE ID]
2018/07/18 13:46:29 Ready for new connections
Run Code Online (Sandbox Code Playgroud)
我还为我的项目启用了Google Cloud SQL和Cloud SQL Admin API。
我收到的错误是:
SQLSTATE[HY000] [2002] No such file or directory …Run Code Online (Sandbox Code Playgroud) google-app-engine google-cloud-sql google-cloud-platform laravel-5
从 3 月 31 日开始,我在 Google Cloud SQL 中遇到以下错误:
读取通信数据包时出错。
我已经使用 Google Cloud SQL 2 年了,但从未遇到过这样的问题。我很担心。
这是详细的错误消息:
textPayload: "2019-04-29T17:21:26.007574Z 203385 [Note] Aborted connection 203385 to db: {db_name} user: {db_username} host: 'cloudsqlproxy~{private ip}' (Got an error reading communication packets)"
Run Code Online (Sandbox Code Playgroud) connection database-connectivity google-cloud-sql google-cloud-platform
我在 gitlab 中有一个 django 存储库设置,我正在尝试使用 gitlab CI/CD 在谷歌云上自动构建和部署。
该应用程序必须部署在 App Engine 上,并且必须使用 CloudSQL 进行动态数据存储。
我面临的问题是在部署应用程序之前在数据库上执行迁移时。
我应该运行./manage.py migrate它连接到cloudSQL。
我读到我们可以使用云代理连接到cloudSQL并迁移数据库。但这有点像黑客。有没有办法通过 CI/CD 管道脚本迁移我的数据库?
任何帮助表示赞赏。谢谢。
django continuous-integration continuous-deployment google-cloud-sql gcloud
我使用以下代码连接到 PostgreSQL 12 数据库:
con <- DBI::dbConnect(odbc::odbc(), driver, server, database, uid, pwd, port)
Run Code Online (Sandbox Code Playgroud)
这将我连接到 Google Cloud SQL 上的 PostgreSQL 12 数据库。然后使用以下代码上传数据:
DBI::dbCreateTable(con, tablename, df)
DBI::dbAppendTable(con, tablename, df)
Run Code Online (Sandbox Code Playgroud)
其中df是我在 R 中创建的数据框。该数据框由约 550,000 条记录组成,总计 713 MB 数据。
通过上述方法上传时,以每秒40次写入操作的速度,大约需要9个小时。有没有更快的方法将此数据上传到我的 PostgreSQL 数据库(最好通过 R)?
对于概念验证项目,我尝试连接在完全托管的存储层上运行的 LaravelCloud Run项目Cloud SQL。
我已经设法使用该命令通过 Google App Engine 获得正常运行的服务gcloud app engine(该服务可以连接到存储层)。我还通过cloud_sql_proxy我的服务的本地 docker 容器成功连接了存储层。但我无法通过 Cloud Run 进行远程设置。
我正在部署 docker 映像,如下所示:
gcloud run deploy --image eu.gcr.io/demo/customerservice --add-cloudsql-instances demo:europe-west1:dps-demo --update-env-vars INSTANCE_CONNECTION_NAME="demo:europe-west1:dps-demo
Run Code Online (Sandbox Code Playgroud)
我的服务针对请求返回的错误是:
could not find driver (SQL: select * from `cache` where `key` = laravel_cachefa9d927c88ff8ebffd06913d97f9d59e limit 1)
Run Code Online (Sandbox Code Playgroud)
(任何类型的数据库查询都会发生此错误,如果我使用本地缓存,则类似)
这是我的.env文件(我删除了一些与问题无关的混乱内容):
APP_NAME=Laravel
APP_ENV=local
APP_KEY=***
APP_DEBUG=true
APP_URL=http://CustomerService.test
APP_STORAGE=/tmp
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=***
DB_SOCKET=/cloudsql/demo:europe-west1:dps-demo
BROADCAST_DRIVER=log
CACHE_DRIVER=database
QUEUE_CONNECTION=sync
SESSION_DRIVER=database
SESSION_LIFETIME=120
VIEW_COMPILED_PATH=/tmp
Run Code Online (Sandbox Code Playgroud) 我想增加我的 Google Cloud SQL 实例的内存,但我无法找到相同的停机时间。在此页面https://cloud.google.com/sql/faq上,我可以找到存储(零停机)和 CPU(几分钟)的停机时间,但找不到内存的停机时间。
有人可以帮助我了解如果我想增加实例的 RAM 是否会导致停机。
我想限制向我通过 Google Terraform 提供商创建的任何给定用户提供的权限。默认情况下,创建的任何用户都会放置在该cloudsqlsuperuser组中,并且创建的任何新数据库都将该角色/组作为所有者。这使通过 GCP 控制台或google_sql_userTerraform 资源创建的任何用户可以完全控制以类似方式创建的任何数据库。
到目前为止,我们能想到的最好办法是通过单次运行的 k8s 作业创建和更改用户。这充其量看起来很迂回,特别是考虑到如果我们想通过 Terraform 管理该资源,则必须稍后手动导入该资源。
是否有更好的方法来创建权限仅限于单个特定于应用程序的数据库的用户?
我每天都会按需备份 GCP 中的云 SQL 实例。这是一个 PostgreSQL 9.6 实例。
我想知道每个备份的大小(以 GB 或 MB 为单位)。如何使用 gcloud CLI 或控制台(Web UI)获取此信息?
https://github.com/GoogleCloudPlatform/cloudsql-proxy
我发现可以通过使用以下命令设置模拟系统范围来实现这一点:gcloud config set auth/impersonate_service_account <MY_SERVICE_ACCOUNT>。
代理 exe 似乎读取了 gcloud 配置。
但这确实很笨拙。我想启动代理并指定要模拟的特定用户,而不必在系统范围内更改它。另外,我不会求助于生成不过期的 json 密钥 - 我想使用模拟。
许多 Gcloud 命令现在支持特定的开关,但代理 exe 不支持。请参阅此 GitHub 问题(谷歌没有回复):https://github.com/GoogleCloudPlatform/cloudsql-proxy/issues/417
我可以运行gcloud auth print-access-token --impersonate-service-account=<MY_SERVICE_ACCOUNT>并设置代理 exe 将拾取的环境变量还是其他什么?
除了提到 gcloud 之外,我在代码中找不到任何内容: https: //github.com/GoogleCloudPlatform/cloudsql-proxy/blob/eca37935e7cd54efcd612c170e46f45c1d8e3556/cmd/cloud_sql_proxy/cloud_sql_proxy.go#L160
- 当 gcloud 命令行工具安装在本地计算机上时,将使用“活动帐户”进行身份验证。运行“gcloud auth list”可查看本地计算机上安装了哪些帐户,运行“gcloud config list account”可查看活动帐户。
这很有趣,因为跑步时auth/impersonate_service_account gcloud config list account并没有说什么。
有没有办法让 Gcloud 在每个会话的基础上进行模拟?
编辑:只是为了跟进,根据答案--token完全有效,所以现在我可以使用 IAM 身份验证和模拟 gsa 同时运行代理:
# start proxy with IAM login as a GSA with a cloud sql service account setup …Run Code Online (Sandbox Code Playgroud) google-cloud-sql google-cloud-platform gcloud cloud-sql-proxy
google-cloud-sql ×10
gcloud ×2
postgresql ×2
apache-beam ×1
connection ×1
django ×1
laravel ×1
laravel-5 ×1
odbc ×1
python ×1
r ×1