尝试从开发者控制台创建新的服装标志 - 不起作用。从命令行绑定: gcloud sqlinstances patch --database-flags time_zone 不起作用,出现错误:“invalidFlagName”
我有一个 google cloud sql postgresql 实例。当我尝试导入 postgresql dump 时出现以下错误。
我可以使用下面给出的命令连接到实例。
gcloud sql connect instance-name --user postgres
Run Code Online (Sandbox Code Playgroud)
它带我到 psql 命令行客户端,在那里我无法使用像pg_restore这样的数据库恢复命令
有谁知道如何实际连接到 Google Cloud SQL 实例以便我可以执行诸如 pg_restore 之类的操作?
我正在尝试在 Google 的容器引擎 (GKE) 上部署我的 Spring Boot/JHipster 应用程序。我已经弄清楚了大部分事情,但是我的数据库实例(一个在 Google Cloud SQL 上运行的 PostgreSQL 实例,带有 Google SQL 代理)有问题。
deployment.yaml 片段:
- image: gcr.io/cloudsql-docker/gce-proxy:1.09
name: cloudsql-proxy
command: ["/cloud_sql_proxy", "--dir=/cloudsql",
"-instances=[my-project]:us-central1:[my-sql-instance-id]=tcp:5432",
"-credential_file=/secrets/cloudsql/credentials.json"]
Run Code Online (Sandbox Code Playgroud)
最后,我更新了我的 Spring Boot 配置 yaml 文件,如下所示:
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:postgresql://google/[my-database]?socketFactory=com.google.cloud.sql.postgres.SocketFactory&socketFactoryArg=[my-project]:us-central1:[my-sql-instance-id]
username: ${DB_USER}
password: ${DB_PASSWORD}
Run Code Online (Sandbox Code Playgroud)
当 …
java google-cloud-sql spring-boot kubernetes google-kubernetes-engine
我正在尝试在 Google Cloud App Engine 上托管作为 Node.js 应用程序实现的 API。API 使用的数据库是 PostgreSQL 9.6 数据库,该数据库由 Cloud SQL 实例托管。数据库通过 .js 连接到 Node.js API Knex。
当托管在 App Engine 上时,不需要与数据库有任何联系的 API 端点可以正常工作。但是当需要联系数据库完成API调用时,日志中出现如下错误:
未处理的拒绝 TimeoutError:Knex:获取连接超时。游泳池可能已经满了。您是否错过了 .transacting(trx) 电话?
但是,如果我使用Knex本地连接到 Cloud SQL 实例并通过 localhost:3000 寻址 API,则需要数据库的 API 调用完全可以正常完成。这将验证 Cloud SQL 上的 PostgreSQL 数据库实例是否工作正常,以及 App Engine 上托管的 Node.js 应用程序是否导致与 Cloud SQL 实例的连接失败。
我像这样连接到数据库:
module.exports = require('knex')({
client: 'pg',
debug: true,
connection: {
host : '35.194.32.254',
user : 'postgres',
password : 'mypassword',
database : 'mydatabase'
},
}); …Run Code Online (Sandbox Code Playgroud) google-app-engine node.js google-cloud-sql knex.js google-cloud-platform
目前我们在 Google Cloud 上,我们在他们的单个 Cloud SQL 实例上有 5000 个数据库,服务器每隔几个小时就会停止,并且由于表的数量,它不会启动几个小时。
根据他们最近修改的文档,他们支持每个实例最多 10.000 个表,在我们的例子中,我们最多可以有 250 个数据库(我们每个数据库有 40 个表)。
我们正在尝试寻找其他解决方案来满足我们的需求,我们有 40.000 个数据库,并且想要一个可扩展的云解决方案,与 mysql/postgresql 兼容。
Aurora 能解决这个问题吗?
amazon-web-services google-cloud-sql google-cloud-platform amazon-aurora
有谁知道如何从 Sequelize 连接到 Google Cloud SQL?
sequelize = new Sequelize(process.env.TEST_DB || 'postgres', 'blah', null, {
dialect: 'postgres',
operatorsAliases: Sequelize.Op,
host: process.env.DB_HOST || 'localhost',
define: {
underscored: true
},
});
connected = true;
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 Kubernetes 部署上的 cloudsql-proxy 容器连接到 CloudSQL 实例。我已经安装了 cloudsql 凭据和GOOGLE_APPLICATION_CREDENTIALS设置的值。
但是,我的日志中仍然收到以下错误:
2018/10/08 20:07:28 Failed to connect to database: Post https://www.googleapis.com/sql/v1beta4/projects/[projectID]/instances/[appName]/createEphemeral?alt=json&prettyPrint=false: oauth2: cannot fetch token: Post https://oauth2.googleapis.com/token: x509: certificate signed by unknown authority
Run Code Online (Sandbox Code Playgroud)
我的连接字符串如下所示:
[dbUser]:[dbPassword]@cloudsql([instanceName])/[dbName]]?charset=utf8&parseTime=True&loc=Local
Run Code Online (Sandbox Code Playgroud)
代理拨号器被影子导入为:
_ github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql
Run Code Online (Sandbox Code Playgroud)
任何人都知道可能会丢失什么?
编辑:
部署规范看起来像这样(JSON 格式):
{
"replicas": 1,
"selector": {
...
},
"template": {
...
"spec": {
"containers": [
{
"image": "[app-docker-imager]",
"name": "...",
"env": [
...
{
"name": "MYSQL_PASSWORD",
...
},
{
"name": "MYSQL_USER",
...
},
{
"name": "GOOGLE_APPLICATION_CREDENTIALS",
"value": "..."
} …Run Code Online (Sandbox Code Playgroud) go google-cloud-sql google-cloud-platform kubernetes google-kubernetes-engine
我在我的谷歌应用引擎标准环境项目中使用 Flask SQLalchemy 来尝试连接到我的 GCP Postgresql 数据库.. 根据谷歌文档,可以以这种格式创建 url
# postgres+pg8000://<db_user>:<db_pass>@/<db_name>?unix_socket=/cloudsql/<cloud_sql_instance_name>
Run Code Online (Sandbox Code Playgroud)
下面是我的代码
from flask import Flask, request, jsonify
import constants
app = Flask(__name__)
# Database configuration from GCP postgres+pg8000
DB_URL = 'postgres+pg8000://{user}:{pw}@/{db}?unix_socket=/cloudsql/{instance_name}'.format(user=user,pw=password,db=dbname, instance_name=instance_name)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URL
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # silence the
deprecation warning
sqldb = SQLAlchemy(app)
Run Code Online (Sandbox Code Playgroud)
这是我不断收到的错误:
File "/env/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 412, in connect return self.dbapi.connect(*cargs, **cparams) TypeError: connect() got an unexpected keyword argument 'unix_socket'
Run Code Online (Sandbox Code Playgroud) postgresql google-app-engine python-3.x flask-sqlalchemy google-cloud-sql
我正在使用启用了 istio 附加组件的 GKE。使用 websocket 时,Myapp 以某种方式给出了 503 错误。我开始认为 websocket 可能正在工作,但数据库连接没有工作,这会导致 503,因为 cloudsql-proxy 日志给出了错误:
$ kubectl logs myapp-54d6696fb4-bmp5m cloudsql-proxy
2019/01/04 21:56:47 using credential file for authentication; email=proxy-user@myproject.iam.gserviceaccount.com
2019/01/04 21:56:47 Listening on 127.0.0.1:5432 for myproject:europe-west4:mydatabase
2019/01/04 21:56:47 Ready for new connections
2019/01/04 21:56:51 New connection for "myproject:europe-west4:mydatabase"
2019/01/04 21:56:51 couldn't connect to "myproject:europe-west4:mydatabase": Post https://www.googleapis.com/sql/v1beta4/projects/myproject/instances/mydatabase/createEphemeral?alt=json: oauth2: cannot fetch token: Post https://oauth2.googleapis.com/token: read tcp 10.44.11.21:60728->108.177.126.95:443: read: connection reset by peer
2019/01/04 22:14:56 New connection for "myproject:europe-west4:mydatabase"
2019/01/04 22:14:56 couldn't connect to "myproject:europe-west4:mydatabase": …Run Code Online (Sandbox Code Playgroud) google-cloud-sql google-cloud-platform kubernetes google-kubernetes-engine cloud-sql-proxy
在尝试评估如何从 Google Kubernetes Engine pod 连接到 Cloud SQL 数据库时,有几种方法可以做到这一点。一种是使用sidecar云代理。另一种方法是使用私有 IP 并在两者之间使用 SSL 连接。两者都有明确的案例吗?或者它们都提供相同的功能?有没有一种被认为是“最佳实践”?
该云SQL代理三轮建立一个TCP连接到被谷歌的基础设施托管的代理服务。然后,这会将您连接到 Google 网络上的云 SQL 实例。
使用私有 IP并将实例连接到您的 VPC 允许您使用内部 IP 地址,该地址未公开路由,并将流量保持在您的 VPC 实例中。最重要的是,设置到您的数据库的仅SSL连接以确保点对点的流量安全。
我错过了什么吗?这两个确实提供相同的东西吗?两者之间没有绝对明确的赢家,您可以选择最适合您风格的那个吗?
google-cloud-sql ×10
kubernetes ×3
postgresql ×3
database ×1
deployment ×1
go ×1
java ×1
knex.js ×1
node.js ×1
python-3.x ×1
sequelize.js ×1
spring-boot ×1