【问题标题】:Why zend framework can't access to mysql database?为什么zend框架无法访问mysql数据库?
【发布时间】:2014-08-02 14:09:29
【问题描述】:

我正在直接从 Zend framewrok 网站学习用户指南教程;我按照指南创建了模块 ALbum 和 mysql 表,但是当我打开链接 'localhost:8080/album' 时返回页面错误,并显示以下消息:

连接错误:SQLSTATE[42000] [1044] 拒绝用户访问 ''@'localhost' 到数据库'zf2tutorial'

我还按照指南说的配置了global.php和local.php,特别是我在local.php中填写了这个凭证:

 return array(
     'db' => array(
         'username' => 'root',
         'password' => '',
     ),
 );

因为“zf2tutotial”数据库是使用没有密码的 root 用户插入的。 为什么框架不访问数据库?

【问题讨论】:

  • 请检查你写的application.config.php - 'config/autoload/{,*.}{global,local}.php', 来自local.phpdb 数组需要与来自global.php 的数组合并。
  • @KunalDethe 是的,正如您在 application.config.php 中所说,代码已经正确

标签: php zend-framework2 zend-db zend-db-table


【解决方案1】:

请检查您的global.php 文件,并将代码与以下内容匹配

 return array(
 'db' => array(
     'driver'         => 'Pdo',
     'dsn'            => 'mysql:dbname=zf2tutorial;host=localhost',
     'driver_options' => array(
         PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
     ),
 ),
 'service_manager' => array(
     'factories' => array(
         'Zend\Db\Adapter\Adapter'
                 => 'Zend\Db\Adapter\AdapterServiceFactory',
     ),
 ),

);

你的local.php是正确的。

【讨论】:

  • global.php 是一样的,我解决了。问题在于访问数据库的权限。
【解决方案2】:

您无权访问数据库。 执行

GRANT ALL PRIVILEGES ON *.* TO ''@localhost

然后

FLUSH PRIVILEGES

获取访问权限。

【讨论】:

  • 我已经从 'mysql -u root' 执行了这些命令。伟大的 !!现在工作...谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多