簡體   English   中英

如何將 Azure 應用程序服務連接到 Azure 數據庫,用於 MySQL 靈活服務器

[英]How to connect an Azure App services to Azure Database for MySQL Flexible Server

我正在與靈活的 mysql 數據庫服務器一起開發 Azure 應用程序服務。 我已成功將我的網站部署到 NodeJS v18.LTS,但我的服務器正在拋出: SequelizeHostNotFoundError: getaddrinfo ENOTFOUND mynameserver.mysql.database.azure.com在我的應用程序服務日志 stream 中。在以下問題中,我通過添加 863 解決方案 18 找到了 813 可能的解決方案 17連接主機到我的數據庫實例而不是 FQDN https://stackoverflow.com/questions/25521755/errolerror-getaddrinfo-enotfound-mysql

然而,這種配置是完全不鼓勵的。

https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/dns-configuration-patterns-for-azure-database-for-postgresql/ba-p/2560287

如何在不違反此策略的情況下為 MySQL 實例正確設置我的靈活服務器以在我的生產應用程序服務環境中工作?

這是我的連接實例配置:

const sequelize = new Sequelize(
process.env.DATABASE,
process.env.USER, 
process.env.MySQLPASSWORD,
{
    host: process.env.HOST, // String conection xxxx.mysql.database.azure.com
    dialect: process.env.dialect,

});
  • 在這里,我有一種連接到 azure MySQL 靈活服務器的替代方法,我在其中使用了mysql2 npm package。

  • 現在我直接在代碼中硬編碼配置數據,但您可以使用與之前相同的方式輕松讀取應用程序設置,只需確保您首先讀取相應的設置,例如:變量中的用戶名,然后添加該變量在配置與 MySQL 的連接時。

var username = process.env.USER
  • 這里我們使用create connection function連接到MySQL數據庫,然后使用query function進行查詢。

以下是快遞api的代碼:

app.use('/', (req,res)=>{
    const  mysql = require('mysql2');
    const  connection = mysql.createConnection({
        host:'',
        user:'',
        database:'',
        password:'',
        port:'',
    });

    connection.query("CREATE TABLE TESTTABLE ( TEST int)",(err)=>{
        console.log(err);
    });
    
    res.send("Hello World");
});

在這里,我已將數據庫連接到 MySQL Workbench,我在其中使用上述代碼創建了表。

在此處輸入圖像描述

在服務器中,我禁用了 ssl 授權

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM