【问题标题】:SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES) Symfony2SQLSTATE [28000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:YES)Symfony2
【发布时间】:2013-04-25 20:41:34
【问题描述】:

我尝试使用 Symfony2 创建我的数据库,输入以下命令:

php app/console doctrine:create:database

结果是:

无法为名为 jobeet 的连接创建数据库 SQLSTATE[28000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)

我的app/config/parameters.yml文件的内容是:

parameters:
   database_driver:   pdo_mysql
   database_host:     127.0.0.1
   database_port:     ~
   database_name:     jobeet
   database_user:     root
   database_password: 0000

   mailer_transport:  smtp
   mailer_host:       127.0.0.1
   mailer_user:       ~
   mailer_password:   ~

   locale:            fr
   secret:            ThisTokenIsNotSoSecretChangeIt

我的操作系统是 Ubuntu。

我不知道如何解决这个问题。

【问题讨论】:

  • 拒绝访问用户'root'@'localhost'(使用密码:YES)是 MySQL 连接错误。通常意味着无效的用户和/或密码。有时你必须使用 localhost 而不是 127.0.0.1 才能工作。
  • 密码是否用引号括起来?

标签: mysql ubuntu symfony


【解决方案1】:

可能是用户名和密码不是您认为的那样。如果您的域名提供商在您购买时向您发送了一封凭据电子邮件,则用户名和密码就是其中的内容。不是您可能通过 cPanel 或 PHPmyAdmin/SQL 等设置的。它将是该域名的 cPanel 密码。

【讨论】:

    【解决方案2】:

    在你的app/config/parameters.yml

    # This file is auto-generated during the composer install
    parameters:
        database_driver: pdo_mysql
        database_host: 127.0.0.1
        database_port: 3306
        database_name: symfony
        database_user: root
        database_password: "your_password"
        mailer_transport: smtp
        mailer_host: 127.0.0.1
        mailer_user: null
        mailer_password: null
        locale: en
        secret: ThisTokenIsNotSoSecretChangeIt
    

    database_password 的值应包含在双引号或单引号内,如:"your_password"'your_password'

    我看到大多数用户遇到此错误,因为他们使用的密码带有前导零或数字值。

    【讨论】:

    • 确实@Nadun Liyanage 是对的,密码数据库应该在“”之间,例如"0000",因为它是一个字符串。
    • 他确实是对的。哇谢谢!奇怪的是,Symfony 3 的内置服务器不带引号就接受了。使用 nginx 我真的需要这个引号,否则它不起作用 --> 用户问题拒绝访问。
    【解决方案3】:

    尝试使用以下命令通过终端登录:

    mysql -u root -p
    

    然后它会提示您输入密码。如果失败,那么肯定是用户名或密码不正确。如果这可行,那么您的数据库的密码需要用引号引起来:

    database_password: "0000"
    

    【讨论】:

    • 我可以通过终端登录到我的 mysql 服务器。我不认为用户和密码的问题。我尝试从 2 小时开始创建我的数据库,但没有结果
    • 在这种情况下,尝试设置:database_port: '3306'
    • 我添加了端口号 3306,我也遇到了同样的问题
    • 显然在你的根 laravel 文件夹中检查你的 .env 文件的数据库配置变量。
    【解决方案4】:

    您需要将root@localhost 的密码设置为空白。有两种方式:

    • MySQL SET PASSWORD 命令:

      SET PASSWORD FOR root@localhost=PASSWORD('');
      
    • 使用命令行mysqladmin 工具:

      mysqladmin -u root -pCURRENTPASSWORD password ''
      

    【讨论】:

      【解决方案5】:

      我不知道确切原因是什么,但我解决了运行问题:

         app/console cache:clear --env=prod
      

      【讨论】:

        【解决方案6】:

        我在使用 LibreOffice 连接到 OpenSUSE 13.1 MySQL 数据库时遇到了类似的问题。将 LibreOffice 更新到最新的稳定“Still”包,然后确保可以使用 phpMyAdmin 等工具访问数据库。确保您的用户链接到 localhost 而不是“%”(任何)。这对我有用,我可以通过 LibreOffice 添加数据。

        附注 - LibreOffice Base 在第一次尝试时不会通过 MySQL 提供“本机连接”,您需要使用后退按钮,然后再次尝试查看选项。

        希望这会有所帮助。

        【讨论】:

          【解决方案7】:

          好的,所以这可能无法解决您的问题,但它肯定对我有用。

          所以你已经创建了你的 Mysql 用户,我接受它?转到 PhpMyAdmin 上的用户权限,然后单击您用于 Symfony 的用户旁边的编辑。向下滚动到底部附近,其中显示您要使用哪个主机,确保您选择了 LocalHost 而不是 % Any。

          然后在你的配置文件中将 127.0.0.1 换成 localhost。希望这对你有用。刚为我工作,因为我遇到了同样的问题。

          【讨论】:

            猜你喜欢
            • 2017-11-07
            • 2015-08-16
            • 1970-01-01
            • 2016-12-16
            • 1970-01-01
            • 2020-08-20
            • 1970-01-01
            • 2017-11-23
            相关资源
            最近更新 更多