繁体   English   中英

mysqli_connect(): (28000/1045): 用户 'username'@'localhost' 访问被拒绝(使用密码:YES)

[英]mysqli_connect(): (28000/1045): Access denied for user 'username'@'localhost' (using password: YES)

在共享托管服务器中配置数据库时出现此错误

mysqli_connect(): (28000/1045): 用户 'username'@'localhost' 访问被拒绝(使用密码:YES)

但它在本地主机中正常工作。

<?php 
session_start();



if($_SERVER['HTTP_HOST']=="localhost")
{
$serverIp="localhost";
$userName="user1";
$password="XXXXX";
$dbname="example";

}else
{


$serverIp="localhost";
$userName="username";
$password="password";
$dbname="dbname";
}

$cn=mysqli_connect($serverIp,$userName,$password) OR Die("Couldn't Connect - ".mysql_error());
$link=mysql_select_db($dbname,$cn)or Die("Couldn't SELCECT - ".mysql_error()); 
?> 

在大多数情况下,此错误可能与最近更改 cpanel 密码或将服务器迁移到新的托管服务器有关。

因此,当您远程连接时,这可以正常工作,但是当您尝试通过 phpmyadmin 的 cpanel 访问数据库时,您会得到这个

 you had the following error with php myadmin: mysqli_connect(): (28000/1045): Access denied for user 'wmct4s'@'localhost' (using password: YES) Undefined index: auth_type

这将通过重置密码并重新启动 cpanel 来解决。

重启cpanel的命令是/scripts/restartsrv_cpsrvd

只需更改您的 cpanel 密码即可。

看起来您在 else 块中插入了错误的凭据,您可以尝试将与 if 块相同的凭据放入并检查是否有效

你的错误是你同时使用 mysql 和 mysqli 。 如果你想使用 mysql 那么你可以写:

$cn = mysql_connect($serverIp, 'mysql_user', 'mysql_password');
$link = mysql_select_db($dbName,$cn);

或者如果你想使用 mysqli 那么你可以写:

$link= new mysqli($serverIp,$userName,$password,$dbName);

您不需要做任何事情,更不用说更改通行证了。 改变它,肯定会起作用。 谢谢

我相信这是 php admin mysqli_connect 错误。

我在我的 cpanel 下的 MySQL Users No db_users 下发现了这一点。

这是管理面板。 在这种情况下,WHM 也没有 db 用户。

重新启动我的主机解决了这个问题。 然后#sudo service mysql 重启。 在所有重置密码之前是强制性的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM