【问题标题】:Creating a database using Symfony2 parameters.ini file on Windows 7 machine在 Windows 7 机器上使用 Symfony2 parameters.ini 文件创建数据库
【发布时间】:2012-06-29 18:35:18
【问题描述】:

我的具体问题:如何解决创建数据库失败的问题 使用 Symfony2 parameters.ini 文件?

这与 Windows7 和 Symfony2 有关。我正在尝试创建一个数据库 配置 Symfony2 后,我失败了。 (详细信息:我正在使用 Windows 7 64 位,xampp 1.7.7 和 PHP 5.3.8 和 Symfony2 2.0.14)。

当我从命令行尝试这个时:

php app/console doctrine:database:create

我明白了:

Could not create database for connection named <comment>jobeet</comment>
SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

我的 parameters.ini 文件如下所示:

[parameters]
    database_driver="pdo_mysql"
    database_host="localhost"
    database_port="3306"
    database_name="jobeet"
    database_user="root"
    database_password="[intentionally left blank]"
    mailer_transport="smtp"
    mailer_host="localhost"
    mailer_user=""
    mailer_password=""
    locale="en"
    secret="[intentionally left blank]"

我可以从命令行(mysqld --console)启动MySql,然后进入MySql 作为 root 用户(mysql -p[故意留空] -u root)并创建一个 数据库(CREATE DATABASE 测试;),所以我认为我的服务器正在运行,我可以 使用它。

我怀疑“用户'root'@'localhost'的访问被拒绝”的问题必须 没有MySql root的密码。

如果有人以前遇到过这种情况并且知道该怎么做,请您帮忙 将不胜感激。

我尝试通过以下方式GRANT ALL PRIVILEGES

mysql> grant all privileges on *.* to 'root'@'localhost';
Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

我担心说“0 行受影响”。这可不好。

这是我的 config.yml。如果您发现问题,请告诉我。

imports:
    - { resource: parameters.ini }
    - { resource: security.yml }

framework:
    #esi:             ~
    #translator:      { fallback: %locale% }
    secret:          %secret%
    charset:         UTF-8
    router:          { resource: "%kernel.root_dir%/config/routing.yml" }
    form:            true
    csrf_protection: true
    validation:      { enable_annotations: true }
    templating:      { engines: ['twig'] } #assets_version: SomeVersionScheme
    session:
        default_locale: %locale%
        auto_start:     true

# Twig Configuration
twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%

# Assetic Configuration
assetic:
    debug:          %kernel.debug%
    use_controller: false
    # java: /usr/bin/java
    filters:
        cssrewrite: ~
        # closure:
        #     jar: %kernel.root_dir%/java/compiler.jar
        # yui_css:
        #     jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar

# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        auto_mapping: true

# Swiftmailer Configuration
swiftmailer:
    transport: %mailer_transport%
    host:      %mailer_host%
    username:  %mailer_user%
    password:  %mailer_password%

jms_security_extra:
    secure_controllers:  true
    secure_all_services: false

【问题讨论】:

  • 您是否碰巧使用 ROOT 用户名 GRANT ALL PRIVILEGES 到 jobeet 数据库?
  • 你能从你的 config.yml 中添加教义部分吗

标签: symfony


【解决方案1】:

您创建了一个名为 test 的数据库,而不是 jobeet

【讨论】:

  • 我这样做是为了测试 MySql 是否正常工作。 'test' 数据库将不会被配置为与 jobeet 项目一起使用,因为如果我可以执行:php app/console dictionary:database:create。是吗?
  • 据我了解,执行此命令会创建一个与 config.yml 和 parameters.ini 兼容的数据库,它们都是由 Symfony2 自动生成的。
猜你喜欢
  • 1970-01-01
  • 2013-02-14
  • 2018-02-16
  • 1970-01-01
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
  • 1970-01-01
相关资源
最近更新 更多