如何设置我的数据库并将其连接到数字海洋上的 NodeJS 应用程序

How to setup and connect my database to NodeJS application on digital ocean

我已经成功地在 Digital-Ocean 上创建了一个 droplet,并成功地将我的 Node JS 应用程序克隆到了它上面。在本地,该应用程序连接到 MySQL 数据库,我想在实时版本上也这样做。无知地,我试图创建一个托管数据库集群,我这样做并添加了 1 个用户帐户并创建了 1 个数据库。现在我不知道如何将导出的 database.sql 文件导入数据库,因为我只习惯使用 phpMyAdmin。

如何让它工作并连接到我的 NodeJS 应用程序?

首先,通过使用 DigitalOcean 数据库添加数据库防火墙,确保您的数据库集群不对外开放。您可以允许来自您自己的 Droplet 的私有 IP 地址和您自己的 public 地址(或 VPN 或您设置的任何方式)的连接。完成后,您应该能够在本地导入 SQL 文件(或从 DO Droplet,只要您安装了 mysql 客户端):

mysql -h [host-provided-do] -P [port-provided-do] -u [username-provided-do] -p [db-name-provided-do] < my-file.sql

最重要的是确保您的托管数据库不对外开放,并且确保它只允许来自已知 IP 地址的传入连接。

在您的 NodeJS 应用程序中,您可以将驱动程序设置为连接到 DO 提供的私有子网。

您正在使用 phpmyadmin 作为交互式 Mysql 客户端程序。它易于使用但难以设置,因为它是一个网络应用程序。

尝试另一个 MySql 客户端程序。令人难忘的命令行客户端 mysql 是一个不错的选择。

在你的 droplet 上写一个 shell,然后说

sudo apt install -y mysql-client
mysql -u username -p -h databasehostname -D database
mysql> source database.sql
mysql> quit

系统将提示您输入数据库密码。

那应该导入你的数据库。

mysql 命令行程序非常有用,值得您花一些时间学习使用。