MySQL 连接-拒绝用户“用户名”@“localhost”访问(使用密码:是)

MySQL 连接-拒绝用户“用户名”@“localhost”访问(使用密码:是)

我有一个用户,我使用它从我的 php 页面对 mysql db 进行查询,现在我试图在 eclipse/BIRT 中使用同一个用户来构建一些报告,但我得到了错误

拒绝用户“用户名”@“localhost”访问(使用密码:是)

有谁知道我错过了什么?

答案1

您必须添加username@%记录,其中“%”是通配符,表示“来自任何地方”。或者,更安全地,您可以添加记录,例如[email protected][email protected]

答案2

使用 config.sample.inc.php 创建您自己的 config.inc.php(在 phpMyAdmin 文件夹中),其中包括如下行(默认设置可能适合您):

/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

答案3

甚至在与数据库服务器建立连接之前,就可能出现“拒绝用户‘用户名’@‘本地主机’访问(使用密码:是)”的语句。我猜这很可能是问题所在,因为我猜你知道正确的密码,而且我还假设你知道你对你试图访问的表有正确的权限,因为你说过你有一个用户,你用它在网站上进行数据库查询。

您并没有真正指定 eclipse 实例的位置,但我猜想它位于与您的服务器不在同一网络上的工作站上。我首先要确保您可以连接到数据库服务器。MySQL 默认在端口 tcp/3306 上运行。我只需尝试建立 telnet 连接以查看它是否连接,“telnet (db_server_ip) 3306”。如果连接已关闭,则您需要根据防火墙的数量打开从工作站到数据库服务器的端口。

答案4

解决方案非常简单,我只需停止使用本地主机并更改为实际的 IP 地址。

相关内容