gpt4 book ai didi

php - 一个用户数据库,不同服务器上的两个应用程序

转载 作者:行者123 更新时间:2023-11-29 08:55:58 25 4
gpt4 key购买 nike

我目前在单个 VPS 上运行 Rails 应用程序,并使用它自己的 MySQL 数据库。该数据库还包含用户表。我们目前正在构建第二个应用程序,它应该具有相同的用户。如果一个人注册了其中任何一个,他就拥有两个帐户。

但是,问题是第二个 (PHP) 应用程序必须托管在另一个位置。这里的最佳实践是什么?我可以直接连接外部数据库而不会造成很大的延迟吗?我应该同步它们吗?首先创建一个 API?

我正在寻找最容易维护的方法。谢谢。

最佳答案

您可以允许第二台主机访问第一台 MySQL 服务器。执行此操作的最佳实践(据我所知)是创建一个新的用户帐户,为其授予用户表所需的权限,允许从第二台主机的 IP 或域并使用安全密码访问它。您将在 MySQL 服务器上运行此查询:

GRANT ALL ON mydatabase.users TO 'mynewuser'@'123.123.123.123'
IDENTIFIED BY 'mysecurepassword';

不用说,您将用您的数据库和表名称替换“mydatabase.users”,用您想要访问的用户的用户名替换“mynewuser”(您可以在此处放置任何内容,用户将自动创建), “123.123.123.123”是您第二个服务器的 IP 或域名,“mysecurepassword”是一个好的长密码,最好是随机生成的。

您的第二台服务器现在可以连接到 MySQL 服务器并拥有 mydatabase.users 表上的 ALL 权限(您可以将其更改为它需要的任何权限)。

MySQL 5.6 GRANT Syntax
Greensql.com on MySQL remote access best practices

为了尽量减少性能损失,我会避免创建多个 MySQL 连接(尝试使用尽可能少的连接,最好只使用一个)。我并不是 100% 同意以下内容,但我很确定减少执行的单独查询的数量也是一个好主意。不要运行 10 个单独的插入,而是运行一个包含多个 VALUES 段的插入,例如

INSERT INTO mytable(id, name) VALUES
(0, 'mia'),
(1,'tom'),
(2,'carl');

我确定MySQL Prepared Statements也将大大有助于减少速度损失

关于php - 一个用户数据库,不同服务器上的两个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9976970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com