设置远程MySQL数据库连接

有时,您可能希望将数据库托管在单独的服务器上,而不是在同一台计算机上运行数据库服务器和Web服务器。

Adobe提供了连接到其他计算机上的MySQL服务器的方法。 从Adobe Commerce 2.4.3开始,您还可以将应用程序配置为使用Amazon Web Services (AWS) Aurora数据库,而无需更改代码。

Aurora是托管在AWS上的高性能、完全兼容的MySQL服务器。

连接到AWS Aurora数据库

使用Aurora作为数据库与使用默认数据库连接器在一般Adobe Commerce设置配置中指定数据库一样简单。

运行bin/magento setup:install时,使用db-字段中的Aurora信息:

bin/magento setup:install ... --db-host='database-aurora.us-east-1.rds.amazonaws.com' --db-name='magento2' --db-user='username' --db-password='password' ...

db-host值是删除了https://和尾随为:portnumber的Aurora URL。

设置远程数据库连接

NOTE
这是一个高级主题,仅应由经验丰富的网络管理员或数据库管理员使用。 您必须具有文件系统的root访问权限,并且必须能够以root身份登录到MySQL。

先决条件

在开始之前,您必须:

高可用性

如果Web服务器或数据库服务器是群集的,请使用以下准则来配置远程数据库连接:

  • 必须为每个Web服务器节点配置一个连接。

  • 通常,可以配置到数据库负载平衡器的数据库连接;但是,数据库群集可能会很复杂,具体配置取决于您。 Adobe没有对数据库聚类提出具体的建议。

    有关详细信息,请参阅MySQL文档

解决连接问题

如果在连接到任一主机时出现问题,请先ping另一台主机以确保其可访问。 可能需要通过修改防火墙和SELinux规则(如果使用SELinux)来允许从一台主机到另一台主机的连接。

创建远程连接

要创建远程连接,请执行以下操作:

  1. 在数据库服务器上,以具有root权限的用户身份打开您的MySQL配置文件。

    要找到它,请输入以下命令:

    code language-bash
    mysql --help
    

    该位置显示如下:

    code language-none
    Default options are read from the following files in the given order:
    /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
    
    note note
    NOTE
    在Ubuntu 16上,路径通常为/etc/mysql/mysql.conf.d/mysqld.cnf
  2. 搜索配置文件bind-address

    如果存在,请按如下方式更改值。

    如果该文件不存在,请将其添加到[mysqld]部分。

    code language-conf
    bind-address = <ip address of your web node>
    

    请参阅MySQL文档,尤其是如果您有群集的Web服务器。

  3. 保存对配置文件所做的更改并退出文本编辑器。

  4. 重新启动MySQL服务:

    • CentOS: service mysqld restart

    • Ubuntu: service mysql restart

    note note
    NOTE
    如果MySQL无法启动,请在syslog中查找问题的来源。 使用MySQL文档或其他权威源解决此问题。

向数据库用户授予访问权限

要使Web节点能够连接到数据库服务器,必须授予Web节点数据库用户访问远程服务器上数据库的权限。

此示例授予root数据库用户对远程主机上数据库的完全访问权限。

要向数据库用户授予访问权限,请执行以下操作:

  1. 登录到数据库服务器。

  2. root用户身份连接到MySQL数据库。

  3. 输入以下命令:

    code language-shell
    GRANT ALL ON <local database name>.* TO <remote web node username>@<remote web node server ip address> IDENTIFIED BY '<database user password>';
    

    例如,

    code language-shell
    GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';
    
    note note
    NOTE
    如果Web服务器是群集的,请在每个Web服务器上输入相同的命令。 对于每个Web服务器,必须使用相同的用户名。

验证数据库访问权限

在Web节点主机上,输入以下命令以验证连接是否有效:

mysql -u <local database username> -h <database server ip address> -p

如果MySQL监视器显示如下,则数据库已准备好使用Adobe Commerce:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 213 Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

如果Web服务器是群集的,请在每个Web服务器主机上输入该命令。

安装Adobe Commerce

安装Adobe Commerce时,必须指定以下内容:

  • 基础URL (也称为​ 存储地址)指定​ Web节点 ​的主机名或IP地址
  • 数据库主机是​ 远程数据库服务器 IP地址(如果数据库服务器是群集的,则为负载平衡器)
  • 数据库用户名是您授予访问权限的​ 本地Web节点 ​数据库用户
  • 数据库口令是本地Web节点用户的口令
  • Database name是远程服务器上数据库的名称
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995