【问题标题】:Symfony 4 Limenius workshopSymfony 4 Limenius 研讨会
【发布时间】:2018-10-21 12:18:26
【问题描述】:

我对使用 php 进行编码还很陌生,我的一个朋友推荐了 Limenius sf4 workshop。但是,我一开始只是为了设置数据库。

在我的 shell 中输入 php bin/console doctrine:schema:update --dump-sql 时(在 Windows 上工作)我收到以下错误消息:

Error thrown while running command "doctrine:schema:update --dump-sql". Message: "An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)"

In AbstractMySQLDriver.php line 113:

  An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)


In PDOConnection.php line 50:

  SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)


In PDOConnection.php line 46:

  SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)

我确实在网上寻找答案,但他们似乎都建议我需要设置我的 .env 文件 - 我根据第一步中的教程做了。网络服务器也运行良好。我只是不知道我到底哪里错了。还有其他人在这部分苦苦挣扎或可能有想法吗?就像我说的,我对此很陌生。

作为测试,我尝试使用命令 php bin/console doctrine:database:create 创建一个新数据库 - 相同的错误消息。

【问题讨论】:

  • 如果 db_user 存在,他无法连接到本地 mysql 服务器。尝试使用此用户连接到您的 Mysql 服务器。
  • 请分享您的.env 文件,至少与数据库连接字符串相关的行
  • 问题是:当我要去localhost/phpmyadmin 时,数据库甚至都不存在(使用 XAMPP)。另外,我不知道 'db_user' 来自哪里,因为我的 .env 文件要求我设置这个 URL:DATABASE_URL="mysql://travolta:travolta@127.0.0.1:3306/travolta?charset=utf8mb4&serverVersion=5.7"
  • 您用来登录 phpMyAdmin 的用户名和密码是什么?
  • 根/根。我确实使用它登录以检查它是我的 XAMPP 配置文件中的内容。我不知道这个“db_user”是从哪里来的,我的用户帐户中没有一个,我的 .env 文件是根据你的指示设置的。感谢您的耐心等待。

标签: php database symfony


【解决方案1】:

好的,一旦我意识到我需要输入我的凭据两次,它确实很有效。

这是我的 .env 文件(顶部没有 cmets):

DATABASE_URL="mysql://root:root@127.0.0.1:3306/travolta"

###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=9c47bf77dd9e746ab12e8fb021e226e1
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS=localhost,example.com
###< symfony/framework-bundle ###

###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL="mysql://root:root@127.0.0.1:3306/travolta"
###< doctrine/doctrine-bundle ###

我没有注意到倒数第二行。我对此感到非常抱歉!不过,非常感谢您帮助我并提供了很好的提示。它帮助我更好地理解事物。

【讨论】:

    【解决方案2】:

    数据库用户名或密码不正确。您可以在 .env 文件中编辑此数据。

    【讨论】:

    • 我的 .env 文件实际上另一个名字和密码:DATABASE_URL="mysql://travolta:travolta@127.0.0.1:3306/travolta?charset=utf8mb4&amp;serverVersion=5.7"
    • 语法没有问题。您确定用户名和密码正确吗?
    • 我已将两者都更改为“root”,但错误消息仍然显示相同(使用用户“'db_user'@'localhost'” - 这是从哪里来的?
    • 你能打印这个命令“php bin/console debug:config 学说”吗
    • 我做了并回答了一个新的答案,因为我的帖子对于评论部分来说太长了。没用,但感谢您的输入!
    【解决方案3】:

    将此行添加到您的.env 文件中:

    DATABASE_URL=mysql://{username}:{password}@127.0.0.1:3306/{database_name}
    

    地点:

    • {username} : 用于登录 phpMyAdmin 的用户名
    • {password} : 用于登录 phpMyAdmin 的密码
    • {database_name} :您希望在 Symfony 应用程序中使用的数据库名称

    更新

    根据您的评论,如果您尚未创建数据库,并且您对 phpMyAdmin 感到满意,请创建一个:

    然后,给用户足够的权限:

    【讨论】:

    • 我现在确实这样做了,但结果相同,使用:DATABASE_URL="mysql://root:root@127.0.0.1:3306/travolta" 用户和密码是正确的,现在检查了两次。
    • 我们去localhost/phpmyadmin 数据库甚至不存在。我不明白这将在哪一步设置。我觉得我缺少明显的东西,但这对我来说都是新事物。
    • @DanielJ。请检查更新
    • 嘿,我确实创建了数据库,并且给了自己所有的权限。但是错误信息还是一样的:(
    • 检查我的新答案,毕竟解决了。对此非常抱歉,但我非常感谢您的帮助!
    猜你喜欢
    • 2013-01-24
    • 2011-11-24
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多