gpt4 book ai didi

php - Zend Framework 2 数据库错误

转载 作者:行者123 更新时间:2023-11-29 22:27:50 25 4
gpt4 key购买 nike

我是一个刚开始学习 Zend Framework 2 的新手。当我按照教程 http://framework.zend.com/manual/2.3/en/user-guide/database-and-models.html 进行操作时,我在查找数据库时遇到问题。

我发现它可以连接到localhost数据库,但找不到任何数据库。

Connect Error: SQLSTATE[HY000] [1049] Unknown database 'db_vote'

它只能找到数据库“mysql”。但是如果我在“mysql”中创建新表,则无法找到新表。

另一件奇怪的事情是我在 phpmyadmin 中更改了 root 密码,但在 zf2 中,如果我更改为新密码,它会说访问被拒绝,但它可以使用旧密码。

看起来 zend 正在连接到另一个“localhost”?奇怪的想法...有人可以帮助我吗?提前致谢。

Module.php 中的代码:

public function getServiceConfig(){
return array(
'factories' => array(
'Album\Model\AlbumTable' => function($sm){
$tableGateway = $sm->get('AlbumTableGateway');
$table = new AlbumTable($tableGateway);
return $table;
},
'AlbumTableGateway' => function($sm){
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Album());
return new TableGateway('album_zend', $dbAdapter, null, $resultSetPrototype);
},
),
);
}

全局.php:

return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=db_vote; 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',
),
),
);

本地.php:

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

最佳答案

问题:

root@localhost

根@%

可以是两个不同的用户。

如果你查看 mysql 数据库中的用户表,你会发现不止一个 root 用户。 Web 应用程序的用户可能与您用于通过控制台连接的用户不同。

如何调查:

检查哪个用户通过控制台(或您使用过的任何其他工具)连接:

SELECT USER();

确保您坚持使用一个用户(例如 root@localhost)或确保 Web 应用程序用户拥有正确的权限:

USE mysql;
SELECT * FROM db;

每当您更改权限时,请不要忘记刷新它们:

FLUSH PRIVILEGES;

关于php - Zend Framework 2 数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30103211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com