php - 无法从 Doctrine PHP 连接到 AWS 上的 MySQL 实例
问题描述
使用
"php": "^7.1.3",
"doctrine/doctrine-bundle": "^1.11",
"doctrine/doctrine-fixtures-bundle": "^3.1",
"doctrine/doctrine-migrations-bundle": "^2.0",
"doctrine/orm": "^2.6",
"friendsofsymfony/oauth-server-bundle": "^1.6",
"friendsofsymfony/rest-bundle": "^2.5",
"friendsofsymfony/user-bundle": "^2.1",
"jms/serializer-bundle": "^3.3",
"symfony/asset": "4.2.*",
"symfony/yaml": "4.2.*"
我似乎无法正确配置将 Symfony Doctrine PHP API 连接到 AWS 数据库实例上的 MySQL 数据库。我在所有实例上运行 Ubuntu 16+。我能够毫无问题地将我的本地 API 连接到我的本地 MySQL,并且我能够以相同的方式连接我的测试服务器,但是当我移动到 AWS 上的生产服务器时,我尝试运行以下命令:
php bin/console doctrine:schema:update --force --env=prod --complete
我收到以下错误:
In AbstractMySQLDriver.php line 93: An exception occurred in driver: SQLSTATE[HY000] [2002] No such file or directory
我尝试了多种配置设置和多次搜索,但在几乎所有情况下,问题都在于使用 localhost 与 127.0.0.1 的设置,这不是我的问题,因为我试图从 AWS EC2(托管我的 API)连接到AWS 数据库实例。
我检查了多次,我的用户名、数据库、密码和路径配置都是正确的,我已经通过手动登录到数据库实例对其进行了测试。
这是我的 config/packages/doctrine.yaml 中的配置
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8
default_table_options:
charset: utf8
collate: utf8_unicode_ci
host: 'api-database.XXXXXXXXXXX.ca-central-1.rds.amazonaws.com'
port: '3306'
dbname: 'XXXXXXX'
user: 'XXXXX'
password: 'XXXXXXXXXXXXXXXXXXXXXXX'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
monolog:
handlers:
main:
type: stream
path: '%kernel.logs_dir%/%kernel.environment%.log'
level: debug
channels: ['!event']
我应该能够连接到数据库并运行迁移以更新数据库架构。
解决方案
我不确定发生了什么,但在我重新启动服务器后它开始工作(我重新启动,因为我更新了一些安全包)。似乎我没有更改的配置是正确的,因此可能存在缓存问题或其他相关问题。
推荐阅读
- r - 从R中的日期持续时间中提取开始日期
- asp.net-core - 在约定驱动的开发中排除一个作为控制器的类?
- java - 无法使用带有 ChromeOptions 的 Java Selenium ChromeDriver 导航到网站
- r - 一次从变量中删除一个数据元素(值)并在 R 中执行函数
- reactjs - 我在测试我的自定义组件时遇到问题
- fluentd - 如何防止 td-agent / fluentd 插入不需要的元数据?
- windows - 禁用 Microsoft Edge (Chromium) 开发人员模式扩展在启动时弹出
- security - graphql 的选择发生在哪一侧?
- c# - CrossCurrentActivity 在依赖项中为空,即使它已初始化并且在应用程序中不为空
- python - 对 Flask 的字符串 POST 请求