&引用;连接失败:拒绝用户访问';根'@';本地主机';(使用密码:是)";从php函数
我编写了一些php网页使用的函数,以便与mysql数据库交互。当我在服务器上测试它们时,会出现以下错误:&引用;连接失败:拒绝用户访问';根'@';本地主机';(使用密码:是)";从php函数,php,mysql,access-denied,Php,Mysql,Access Denied,我编写了一些php网页使用的函数,以便与mysql数据库交互。当我在服务器上测试它们时,会出现以下错误: "Connect failed: Access denied for user 'root'@'localhost' (using password: YES)" 我可以在我的pc上使用它们(使用XAMPP),并且可以使用服务器中的命令行浏览数据库的表。但是,该网页无法连接。我已经检查了密码,但没有结果。这是正确的(否则我无法从命令行登录到mysql) 函数的调用如下所示: $conn
"Connect failed: Access denied for user 'root'@'localhost' (using password: YES)"
我可以在我的pc上使用它们(使用XAMPP),并且可以使用服务器中的命令行浏览数据库的表。但是,该网页无法连接。我已经检查了密码,但没有结果。这是正确的(否则我无法从命令行登录到mysql)
函数的调用如下所示:
$conn = new mysqli("localhost", "root", "password", "shop");
我必须在服务器中设置一些内容吗?谢谢
编辑:
PHP版本5.3.3-7+1
mysql版本:5.1.49-3
在debian上尝试初始化变量并在连接对象中使用它们:
$username ="root";
$password = "password";
$host = "localhost";
$table = "shop";
$conn = new mysqli("$host", "$username", "$password", "$table");
尝试初始化变量并在连接对象中使用它们:
$username ="root";
$password = "password";
$host = "localhost";
$table = "shop";
$conn = new mysqli("$host", "$username", "$password", "$table");
数据库中是否有用户帐户条目root@localhost? 在MySQL中,您可以按主机设置不同的用户帐户权限。可能有多个同名的不同帐户与其连接的主机组合在一起。最常见的是root@127.0.0.1及root@localhost. 它们可以具有不同的密码和权限。确保root@localhost存在并具有您期望的设置
根据你的解释,我愿意打赌这就是问题所在。从另一台电脑连接时使用的帐户不同于root@localhost我认为命令行使用root@127.0.0.1.数据库中是否有用户帐户条目root@localhost? 在MySQL中,您可以按主机设置不同的用户帐户权限。可能有多个同名的不同帐户与其连接的主机组合在一起。最常见的是root@127.0.0.1及root@localhost. 它们可以具有不同的密码和权限。确保root@localhost存在并具有您期望的设置
根据你的解释,我愿意打赌这就是问题所在。从另一台电脑连接时使用的帐户不同于root@localhost我认为命令行使用root@127.0.0.1.根据您目前所说的,PHP5.3中的MySQL驱动程序在连接到较旧的MySQL版本4.1时出现问题。看看 这里有一个类似的问题,有一些有用的答案 对于使用旧密码的帐户,这将返回16,对于使用新密码的帐户,这将返回41(对于完全没有密码的帐户,这将返回0,您可能还需要处理这些问题)。 使用MySQL前端的用户管理工具(如果有)或
从您到目前为止所说的情况来看,PHP5.3中的MySQL驱动程序在连接到较旧的MySQL版本4.1时出现问题。看看 这里有一个类似的问题,有一些有用的答案 对于使用旧密码的帐户,这将返回16,对于使用新密码的帐户,这将返回41(对于完全没有密码的帐户,这将返回0,您可能还需要处理这些问题)。 使用MySQL前端的用户管理工具(如果有)或 我这样解决: 我使用root用户名登录
mysql -u root -p -h localhost
我使用创建了一个新用户
CREATE USER 'francesco'@'localhost' IDENTIFIED BY 'some_pass';
然后我创建了数据库
CREATE DATABASE shop;
我已授予此数据库的新用户权限
GRANT ALL PRIVILEGES ON shop.* TO 'francesco'@'localhost';
然后我注销了root并登录了新用户
quit;
mysql -u francesco -p -h localhost
我用脚本重建了数据库
source shop.sql;
就这样。。现在,从php开始,调用不会出现问题
$conn = new mysqli("localhost", "francesco", "some_pass", "shop");
感谢大家的时间:)我这样解决了:
我使用root用户名登录
mysql -u root -p -h localhost
我使用创建了一个新用户
CREATE USER 'francesco'@'localhost' IDENTIFIED BY 'some_pass';
然后我创建了数据库
CREATE DATABASE shop;
我已授予此数据库的新用户权限
GRANT ALL PRIVILEGES ON shop.* TO 'francesco'@'localhost';
然后我注销了root并登录了新用户
quit;
mysql -u francesco -p -h localhost
我用脚本重建了数据库
source shop.sql;
就这样。。现在,从php开始,调用不会出现问题
$conn = new mysqli("localhost", "francesco", "some_pass", "shop");
感谢所有您的时间:)在PHPmyAdmin(WAMP)上编辑您的权限,请注意,您的密码和用户名尚未创建。因此,一定要创建或编辑它,以便它可以与php中的sql连接一起工作。
希望它能工作编辑您在PHPmyAdmin(WAMP)上的权限,注意您的密码和用户名尚未创建。因此,一定要创建或编辑它,以便它可以与php中的sql连接一起工作。 希望它能起作用也许在这里? 我认为代码应该是:
$connect=newmysqli(“主机”、“根”、“数据库名”)代码>
因为root用户没有密码。(使用密码:是)
在这里说“您正在使用此用户的密码”?
我认为代码应该是:
$connect=newmysqli(“主机”、“根”、“数据库名”)代码>
因为root用户没有密码。(使用密码:YES)
表示“您正在使用此用户的密码”我也遇到了这个问题。但这是因为另一个原因。
我的密码以字符$
开头。。。e、 g.$MyPassword
我把它改成了我的密码,问题就解决了。我也遇到了这个问题。但这是因为另一个原因。
我的密码以字符$
开头。。。e、 g.$MyPassword
我已将其更改为#MyPassword
,问题已解决。提示:
如果无法连接到服务器,请注释掉pid和套接字文件。。
mysql可能正在连接错误的pid和/或套接字文件,
因此,当您尝试通过命令行连接到服务器时,它“看起来”
在不正确的pid/套接字文件中…
### comment out pid and socket file, if you can't connect to server..
#pid-file=/var/run/mysql/mysqld.pid
#socket=/var/lib/mysql/mysql.sock
###如果无法连接到服务器,请注释掉pid和套接字文件。
#pid文件=/var/run/mysql/mysqld.pid
#socket=/var/lib/mysql/mysql.sock提示:
如果无法连接到服务器,请注释掉pid和套接字文件。。
mysql可能正在连接错误的pid和/或套接字文件,
所以,当您尝试通过命令li连接到服务器时