我的 Google Cloud SQL 数据库中有一个带有自动递增列的表。
如何INSERT通过 google-apps-script/JDBC 执行查询并获取新增加的列的值?
例如,我的专栏名为ticket_id. 我希望在结果集中返回INSERT新值。ticket_id
换句话说,如果我有以下结构,我需要修改什么或如何修改,以便我可以做类似的事情rs = stmt.getGeneratedKeys();
var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms:.......
var stmt = conn.createStatement();
//build my INSERT sql statement
var sql = "insert into ......
var rs = stmt.executeUpdate(sql);
Run Code Online (Sandbox Code Playgroud)
我看到有一个 JDBC 语句类,其中有一个名为 的成员RETURN_GENERATED_KEYS,但到目前为止我还不够聪明,无法弄清楚如何正确操作它并获得我需要的东西。是RETURN_GENERATED_KEYS一个常量,还是一个属性,或者我该如何使用它?
我刚刚开始使用谷歌应用程序引擎。我正在用 php 开发一个应用程序。如果我想看到结果,我使用了
dev_appserver.py ./ --php_executable_path /usr/bin/php5-cgi
(对我来说,如果没有 --php_executable_path 参数,它就无法工作)
它工作正常,但我无法连接到云 sql 实例。我阅读了此https://cloud.google.com/appengine/docs/php/cloud-sql并尝试通过以下方式连接到云 sql:
$sql = 新的 mysqli(null, 'root', // 用户名 '', // 密码 , 无效的, '/cloudsql/:' );
如果我将某些内容部署到 appengine,这是可行的,但是如果我需要在本地调试应用程序并且它取决于数据库,我应该做什么?
我目前正在 App Engine 灵活环境上设置一个名为 Mautic 的开源营销软件。但是,我在使用 MySQLi 将 App Engine 连接到 Cloud SQL MySQL 数据库时遇到问题。Mautic 是一个构建在 Symfony 之上的 PHP 应用程序。我尝试使用 /cloudsql/< instance_connection_name > 作为主机,但它不起作用。有人有在 App Engine 上部署 Mautic 的经验或知道解决这个问题吗?
我做了一个实验,在Google SQL云上创建多个查询,如图所示,但是结果是
错误 1055 (42000):SELECT 列表的表达式 # 5 不在 GROUP BY 子句中,并且包含非聚合列“ipol.sales.name”,该列在功能上不依赖于 GROUP BY 子句中的列;这与 sql_mode = only_full_group_by 不兼容
下面的谷歌云函数返回空结果。
相同的代码可以很好地处理 onRequest 并按预期返回数据。我想使用可调用函数以便轻松地将参数发送到该函数。有人知道这里出了什么问题吗?
const functions = require('firebase-functions');
const mysql = require('mysql');
exports.getUserData = functions.https.onCall((data, context) => {
const connectionName =
process.env.INSTANCE_CONNECTION_NAME || 'instance';
const dbUser = process.env.SQL_USER || 'root';
const dbPassword = process.env.SQL_PASSWORD || 'password';
const dbName = process.env.SQL_NAME || 'someDb';
const mysqlConfig = {
connectionLimit: 1,
user: dbUser,
password: dbPassword,
database: dbName,
};
if (process.env.NODE_ENV === 'production') {
mysqlConfig.socketPath = `/cloudsql/${connectionName}`;
}
let mysqlPool;
if (!mysqlPool) {
mysqlPool = mysql.createPool(mysqlConfig);
}
mysqlPool.query('SELECT * from table where id = …Run Code Online (Sandbox Code Playgroud) 我遇到问题是因为代理死了,也许是因为我从控制台启动它,我是 Cloud SQl 的新手。
Google Cloud Storage 将其安装在自定义元数据部分的实例配置页面上,并使用密钥“启动脚本”。这也是启动 Cloud SQL 代理的好地方吗?
我还看到它通过控制台启动:
./cloud_sql_proxy -instances=xxx:us-central1:my-instance=tcp:3306 &
and
nohup ./cloud_sql_proxy -instances=xxx:us-central1:my-instance=tcp:3306 &
Run Code Online (Sandbox Code Playgroud)
考虑在重启时自动启动,有什么好方法?
我在 Debian 9 中使用一个实例
我有 2 个谷歌云服务:
我已将 Cloud SQL 连接从 UI 添加到 Google Cloud Run 服务,并拥有 Google Cloud SQL 服务的公共 IP。最重要的是,我已将运行服务 IP 添加到 SQL 服务的授权网络中。
如果我尝试从另一台服务器(谷歌云外部)连接,我可以轻松连接到谷歌云 SQL 服务并执行查询。但是,如果我尝试从 GCloud Run Service 内部使用完全相同的设置(Ip、database_name 等)进行连接,我的连接就会挂起,并且日志中会出现超时错误...
如何正确允许 Gcloud SQL 接受来自 GCloud RUN 的连接?
我在这里寻找其他答案,但它们看起来都很旧(大约 2015 年)
我想将我的 Cloud Run 应用程序连接到 Postgres Cloud SQL 实例而不为该实例分配公共 IP。似乎唯一的方法是使用无服务器 VPC 访问连接器。
文档表明无服务器 VPC 访问连接器按每 100Mbps 1 个 e2-micro 实例计费。这是否表明连接器只是一个单一的 e2-micro VM?是否在幕后配置了任何冗余/自动故障转移?
我找不到无服务器 VPC 访问的任何 SLA,我担心这可能是我的应用程序的单点故障,导致所有数据库连接中断。
google-cloud-sql google-cloud-platform serverless google-cloud-run
这是我从未问过的最令人沮丧的问题。我如何连接这两个?
我有一个 API (ASP.NET Core 3.1),我将此应用程序部署到 Google 的 App Engine 上。我还在 Cloud SQL(PostgreSQL 引擎 12)上连接了一个数据库。如果没有 SSL,连接也可以正常工作。添加 SSL 是一个巨大的痛苦。我不断收到以下错误:
Error Connecting to database FATAL : no pg_hba.conf entry for host"x.x.x.x", user"jiradbuser", database"jiradb", SSL off
Run Code Online (Sandbox Code Playgroud)
上述错误实际上没有任何意义,因为我在 GCP 上没有任何选项来修改此类文件。
我已经下载了 Google 在将数据库配置为仅接受 SSL 连接时提供的 client-cert.pem、client-key.pem 和 server-ca.pem 文件,当我在 PSQL 中运行以下命令时,我连接通过 SSL 就可以了:
psql "sslmode=verify-ca sslrootcert=server-ca.pem sslcert=client-cert.pem sslkey=client-key.pem hostaddr=<cloud sql public ip> port=5432 user=< my username> dbname=<database inside cloud sql instance>"
Run Code Online (Sandbox Code Playgroud)
我尝试使用 NpgSqlConnectionStringBuilder 从配置文件中获取相关的 ----BEGIN CERTIFICATE--------END CERTIFICATE--- 文件来生成包含该信息的连接字符串,但这不起作用:
var connectionStringBuilder = new NpgsqlConnectionStringBuilder(connectionString)
{ …Run Code Online (Sandbox Code Playgroud) c# postgresql google-app-engine google-cloud-sql google-cloud-platform
按照此处的说明,我在使用我生成的令牌从 Azure Data Studio 连接到 DB 时遇到问题。它成功连接到数据库,但是一旦我想运行一个简单的查询(我已经在那里给了我的用户读取访问权限),它就会给我这个连接错误,我需要再次使用令牌进行连接并且断开连接再次发生一段时间后随机:
FATAL:失败,用户Cloud SQL的IAM用户身份验证“user@company.com” FATAL:pg_hba.conf里拒绝为主机连接“ 。。,用户”user@company.com“数据库”DB-名“,SSL关”
我进行了一些搜索,发现还有一种使用 Cloud SQL Auth 代理通过 IAM 数据库身份验证登录的方法,但文档仅限于 Postgress 命令行,而不是像 Azure Data Studio 这样的 GUI 数据库工具。如果您想在这种情况下连接 GUI 工具,任何人都可以对此有所了解吗?
关于更改pg_hba.conf文件,因为我使用的是云 SQL 实例,所以我不确定如何在云实例上关闭sslmode。我检查了我的实例的连接选项卡并SSL encryption没有在那里检查(不确定是否相同),并且我将 sslmode 更改为在我的 Azure Data Studio 上禁用连接,但在此更改后它不允许我进行连接:
FATAL: pg_hba.conf rejects connection for host "*.*.*.*", user "user@company.com", database "database", SSL off
Run Code Online (Sandbox Code Playgroud)
帮助,有人吗?
postgresql google-cloud-sql google-cloud-platform cloud-sql-proxy google-cloud-iam
google-cloud-sql ×10
postgresql ×2
c# ×1
firebase ×1
javascript ×1
jdbc ×1
launch ×1
mautic ×1
mysql ×1
php ×1
proxy ×1
serverless ×1