Php 拒绝用户“rdonly”@“localhost”的访问(使用密码:是)
我已经编写了一个PHP应用程序。使用没有密码的根ID工作正常。然后我更改了密码和PHP代码,效果很好 我想创建一个对数据库具有只读访问权限的新用户“rdonly”,这样就没有人知道PHP中嵌入的根密码。我做了修改,得到了上面的错误 然后我给了“rdonly”与root相同的权限,以查看它是否缺少权限。同样的错误 我检查过类似的错误消息。有人建议查看“config.php.ini”文件。我这样做了,但是它没有包含根目录的新密码,这很奇怪,因为新密码有效,如果我错过了密码,我会得到类似的错误Php 拒绝用户“rdonly”@“localhost”的访问(使用密码:是),php,mysql,mysqli,xampp,Php,Mysql,Mysqli,Xampp,我已经编写了一个PHP应用程序。使用没有密码的根ID工作正常。然后我更改了密码和PHP代码,效果很好 我想创建一个对数据库具有只读访问权限的新用户“rdonly”,这样就没有人知道PHP中嵌入的根密码。我做了修改,得到了上面的错误 然后我给了“rdonly”与root相同的权限,以查看它是否缺少权限。同样的错误 我检查过类似的错误消息。有人建议查看“config.php.ini”文件。我这样做了,但是它没有包含根目录的新密码,这很奇怪,因为新密码有效,如果我错过了密码,我会得到类似的错误 /*
/* config.php.ini */
$cfg['Servers'][$i]['auth_type'] = 'cookie'; // Authentication method (config, http or cookie based)
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
我不知道为什么ini文件是相关的,尽管XAMPP3.2.1似乎允许您更改特权
我做了以下更改,在阅读时将“%”项放入,这意味着除“localhost”之外的所有数据库,因此我也添加了“localhost”项。不确定其他根条目都是关于什么的
rdonly % global all-privileges<P>
% database specific all-privileges<P>
rdonly localhost global all-privileges<P>
localhost database specific all-privileges <P>
root 127.0.0.1 global all-privileges<P>
127.0.0.1 database specific all-privileges <P>
root ::1 global all-privileges<P>
::1 database specific all-privileges <P>
rdonly localhost global all-privileges<P>
localhost database specific all-privileges <P>
这并不是:
$con=new mysqli("localhost", "rdonly", "password", "mysql");
如蒙指教,我将不胜感激。只是看不到问题所在。数据库服务器是否与脚本运行在同一台服务器上?我不是专家,但您似乎将rdonly帐户限制为本地主机的连接,127.0.0.1%并不是指所有数据库,而是指所有客户端。这意味着您只能从任何其他系统远程或本地登录到RDS。localhost意味着您只能从本地同一系统登录到rdonly。从技术上讲,MySQL将这些条目视为两个不同的用户。您是如何创建rdonly用户的?我假设您没有正确定义密码。默认情况下,rdonly和root不会共享相同的密码。数据库位于同一台服务器上。我将XAMPP下载到我的笔记本电脑上,并在同一台笔记本电脑上使用Dreamweaver编写脚本。感谢您的帮助。知道这些很有用。我想只需要%的权限。
$con=new mysqli("localhost", "rdonly", "password", "mysql");