设置远程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。
设置远程数据库连接
root
访问权限,并且必须能够以root
身份登录到MySQL。先决条件
在开始之前,您必须:
- 在数据库服务器上安装MySQL服务器。
- 在数据库服务器上创建数据库实例。
- 在Adobe Commerce Web节点上安装MySQL客户端。 有关详细信息,请参阅MySQL文档。
高可用性
如果Web服务器或数据库服务器是群集的,请使用以下准则来配置远程数据库连接:
-
必须为每个Web服务器节点配置一个连接。
-
通常,可以配置到数据库负载平衡器的数据库连接;但是,数据库群集可能会很复杂,具体配置取决于您。 Adobe没有对数据库聚类提出具体的建议。
有关详细信息,请参阅MySQL文档。
解决连接问题
如果在连接到任一主机时出现问题,请先ping另一台主机以确保其可访问。 可能需要通过修改防火墙和SELinux规则(如果使用SELinux)来允许从一台主机到另一台主机的连接。
创建远程连接
要创建远程连接,请执行以下操作:
-
在数据库服务器上,以具有
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
。 -
搜索配置文件
bind-address
。如果存在,请按如下方式更改值。
如果该文件不存在,请将其添加到
[mysqld]
部分。code language-conf bind-address = <ip address of your web node>
请参阅MySQL文档,尤其是如果您有群集的Web服务器。
-
保存对配置文件所做的更改并退出文本编辑器。
-
重新启动MySQL服务:
-
CentOS:
service mysqld restart
-
Ubuntu:
service mysql restart
note note NOTE 如果MySQL无法启动,请在syslog中查找问题的来源。 使用MySQL文档或其他权威源解决此问题。 -
向数据库用户授予访问权限
要使Web节点能够连接到数据库服务器,必须授予Web节点数据库用户访问远程服务器上数据库的权限。
此示例授予root
数据库用户对远程主机上数据库的完全访问权限。
要向数据库用户授予访问权限,请执行以下操作:
-
登录到数据库服务器。
-
以
root
用户身份连接到MySQL数据库。 -
输入以下命令:
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是远程服务器上数据库的名称