我有一个使用 MySQL 的 Node 应用程序,通过配置 json 连接:
{
"client": "mysql",
"connection": {
"host": "something",
"user": "something",
"password": "something",
"database": "daimonion-db",
"debug": false
}
}
我创建了一个Google Cloud Platform SQL实例。我看到了一个IP地址和实例连接名称。
我还在灵活的环境中将Node应用程序部署到Google Cloud App Engine。
如何将Node应用程序连接到SQL实例?我看到了这样的解释:https://cloud.google.com/sql/docs/mysql/connect-app-engine它告诉我向我的应用程序添加设置字符串。yaml可以连接Unix域套接字或TCP连接,但如何从我的Node应用程序连接到这些套接字?
有两种方法可以从本地桌面连接云SQL
实例:
postgresql
示例
>
使用公共 IP 和 psql
工具:https://cloud.google.com/sql/docs/postgres/connect-admin-ip
a.将您的外部IP添加到CloudSQL
-CONNECTIONS
-授权网络
b.将连接.主机
修改为云 SQL
实例公共 IP
使用cloud_sql_proxy
工具和INSTANCE_CONNECTION_NAME
:https://cloud.google.com/sql/docs/postgres/connect-admin-proxy
包括对 app.yaml
beta_settings
以在生产中的实例上启用云代理,并在配置
中指定 UNIX 套接字套接字路径
,以便您的 flex 应用程序可以通过代理连接到实例。
仅当应用在 App Engine 上的正式环境中运行时,socketPath
才应处于配置
状态。对于本地开发,TCP 套接字与代理客户端一起使用,您需要安装并使用以下命令启动:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
chmod +x cloud_sql_proxy
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306
这是一个使用代理连接和查询Cloud MySQL实例的Node应用示例。if
语句允许应用使用环境变量自动切换配置dev-loc/prod-appEngine。
app.yaml
runtime: nodejs
env: flex
env_variables:
SQL_USER: [SQL_USER]
SQL_PASSWORD: [SQL_PASSWORD]
SQL_DATABASE: [DATABASE_NAME]
INSTANCE_CONNECTION_NAME: [INSTANCE_CONNECTION_NAME]
beta_settings:
cloud_sql_instances: [INSTANCE_CONNECTION_NAME]
包.json
{
"engines": {
"node": "8.x.x"
},
"dependencies": {
"express": "4.16.3",
"mysql": "^2.15.0"
},
"scripts": {
"start": "node server.js"
}
}
服务器.js
const express = require('express');
const mysql = require('mysql');
const app = express();
var config = {
user: process.env.SQL_USER,
database: process.env.SQL_DATABASE,
password: process.env.SQL_PASSWORD
}
if (process.env.INSTANCE_CONNECTION_NAME && process.env.NODE_ENV === 'production') {
config.socketPath = `/cloudsql/${process.env.INSTANCE_CONNECTION_NAME}`;
}
var connection = mysql.createConnection(config);
connection.connect();
app.get('/', (req, res) => {
connection.query(
'SELECT * FROM entries', function(err, result, fields){
if (err) throw err;
res.send(result);
}
);
});
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
console.log(`App listening on port ${PORT}`);
console.log('Press Ctrl+C to quit.');
});
我正在尝试将node.js连接到MySQL,但失败了。我已经安装了MySQL和相关库。如何解决此错误?另外,如果我想让数据响应为原生的,我应该如何去做呢? 收到的错误消息:
我正在使用第二代Google Cloud Sql,并在灵活的环境中运行应用程序引擎实例。应用程序引擎连接到云sql以运行sql查询。我已经设置了一个连接池,以创建最少10个连接,最多200个连接。 然而,我读到了这篇文章——https://cloud.google.com/sql/docs/mysql/diagnose-issues其中写道:“在标准环境中运行的每个应用引擎实例与Google Cl
问题内容: 我已经尝试过将多种XMPP库用于Node.js,但是在连接到Google Talk的XMPP服务器时遇到了麻烦。我想联系并阅读朋友的状态,但我什至无法走出去! 我有一个通过Google Apps for Domains托管的个人域,例如。 我编写了以下代码-它使用了node-xmpp库(https://github.com/astro/node-xmpp): 建立了连接,但是身份验证失
本文向大家介绍Node.js 使用Mongoose连接到MongoDB,包括了Node.js 使用Mongoose连接到MongoDB的使用技巧和注意事项,需要的朋友参考一下 示例 首先,使用以下命令安装Mongoose: 然后,将其添加server.js为依赖项: 接下来,创建数据库模式和集合名称: 创建一个模型并连接到数据库: 接下来,启动MongoDB并server.js使用运行node s
问题内容: 使用Node.js编写连接两个REST API的独立应用程序是否明智? 终点将是POS-销售点-系统 另一个将是托管的电子商务平台 将有一个用于配置服务的最小接口。而已。 问题答案: 是的,Node.js非常适合于调用外部API。就像Node中的所有内容一样,进行这些调用的功能都是基于事件的,这意味着要做一些事情,例如缓冲响应数据,而不是接收单个完整的响应。 例如: 如果要进行很多此类
本文向大家介绍Node.js使用MySQL连接池的方法实例,包括了Node.js使用MySQL连接池的方法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Node.js使用MySQL连接池的方法。分享给大家供大家参考,具体如下: Nodejs如何使用MySQL Nodejs要连接MySQL,可以使用Nodejs的MysQL驱动来实现。比如,我们这里使用"node-mysql"连接数据库