我试图找到这个问题的现有答案,但我找到的答案到目前为止还没有奏效。
我一直在尝试使用PHP连接到MySql数据库。我的Web主机在Linux上使用cPanel。我用来做这个的代码似乎足够标准:
$mysqli = new mysqli("localhost", "cPanelUsername_dbUsername", "dbPassword", "cPanelUsername_dbName");
我一直收到以下错误:
Failed to connect to MySQL: (1045) Access denied for user 'cPanelUsername_dbUsername'@'localhost' (using password: YES)Access denied for user 'cPanelUsername'@'localhost' (using password: NO)
在其他地方搜索此问题的答案之后,我最终在dbName和dbUsername之前添加了我的cPanel用户名。
看起来我已经正确设置了所有内容,但它没有连接(上面的错误)。我没有对服务器的任何直接控制,我不必询问我的网站主机,这可能需要几天才能整理出来。我的连接代码有问题吗?
答案 0 :(得分:2)
首先检查您为数据库提供了正确用户访问权限的数据库,该数据库是从“添加用户”到cpanel中Mysql数据库部分的数据库中提供的。
之后再次检查,
首先在php中尝试正常的连接代码,
$con = mysql_connect("localhost","cpanel_username","cpanel_password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
答案 1 :(得分:1)
在cPanel中,请确保:
cPanelUsername_dbName
存在,密码为dbPassword
cPanelUsername_dbName
访问数据库。cPanelUsername_dbName
从localhost
,127.0.0.1
和服务器的IP地址访问数据库。您的MySQL连接可能使用127.0.0.1
或服务器的IP地址,如果未授予对所使用的特定IP地址的访问权限,MySQL将拒绝该连接。
答案 2 :(得分:0)
检查phpMyAdmin
处的数据库名称拼写。通常名称格式为user_dbname
。
例如:
cpanel username: jack,
database created: student
在php
脚本中,dbname
应为jack_student
答案 3 :(得分:0)
这对我有用:
如果您需要更改MySQL 5.7.6及更高版本的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5及更早版本:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');