繁体   English   中英

用户'root'@ localhost mysql错误1045拒绝访问

[英]access is denied for user 'root'@localhost mysql error 1045

我是PHP的新手。 执行我的应用程序时出现以下错误:

在phpMyadmin中,代码是这样的

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;

由于我已经恢复,我已将上述代码更改为

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'Pass123';
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;

现在我收到以下错误

用户'root'@'localhost'拒绝访问(使用密码:YES)MySQL错误#:1045

请告诉我,这里出了什么问题。

在浪费了大部分时间来解决这个问题之后,事实证明我所要做的就是提供非localhost主机名。 我不知道为什么(允许用户从任何主机连接),但它的工作原理!

root@base:~# mysql -u username -h hostname -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

在PHP中:

Test 1807:
<?php
$username = "username";
$password = "password";
$hostname = "actualhostnamenotlocalhost"; 

$con = mysqli_connect($hostname, $username, $password);

// Check connection
if (mysqli_connect_errno($con)){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_close($con);    

?>
OK.

这里没有人提到(由于某种原因),分配给您的用户的主机可能是错误的。 当它表示root@localhost它表示用户root的主机为localhost

在某些服务器上,默认root可能不在localhost 试试这些:

root@127.0.0.1

root@[yourhostname]

MySQL服务器及其运行端口可能存在问题。 默认值为3306.如果它不起作用,请更改my.ini的端口(无论mysql-ini文件名是什么),还要更改phpmyadmin文件夹中config.inc.php中的port-reference。

所以,这里解释的错误(由Gnanendra)

用户'root'@'localhost'拒绝访问(使用密码:YES)MySQL错误#:1045

因为MySQL服务器运行不正确,可能会给出。

有关此问题的更多信息,请查看此帖子:

无法启动服务器:绑定TCP / IP端口:没有这样的文件或目录

确保密码正确(大写锁定?)并且可能使用原始IP地址,即127.0.0.1

请检查您在此输入的密码。

当您的密码与原始密码不匹配时,会出现这类错误。

确定你是否为mysql分配了密码

暂无
暂无

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

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