我试图找到这个问题的现有答案,但我找到的答案到目前为止还没有奏效 .
我一直在尝试使用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)
-
"localhost"是MySql服务器所在的主机服务器(看起来这样可行)
-
"cPanelUsername"是我的cpanel用户名
-
"dbUsername"是数据库用户,我在数据库中添加了所有权限
-
"dbPassword"是dbUsername的数据库密码
-
"dbName"是数据库名称
在其他地方搜索此问题的答案之后,我最终在dbName和dbUsername之前添加了我的cPanel用户名 .
看起来我已经正确设置了一切,但它没有连接(上面的错误) . 我没有对服务器的任何直接控制,我不必询问我的网站主机,这可能需要几天才能整理出来 . 我的连接代码有问题吗?
4 回答
这对我有用:
如果您需要更改MySQL 5.7.6及更高版本的密码:
MySQL 5.7.5及更早版本:
首先检查您为数据库提供了正确用户访问权限的数据库,该数据库是从“添加用户”到cpanel中Mysql数据库部分的数据库中提供的 .
之后再检查一下,
首先尝试php中的普通连接代码,
在cPanel中,确保:
数据库用户
cPanelUsername_dbName
存在,密码为dbPassword
您要使用的数据库存在 .
允许用户
cPanelUsername_dbName
访问数据库 .允许用户
cPanelUsername_dbName
从localhost
,127.0.0.1
和服务器的IP地址访问数据库 .您的MySQL连接可能使用
127.0.0.1
或服务器的IP地址,如果未对所使用的特定IP地址授予访问权限,MySQL将拒绝连接 .检查
phpMyAdmin
的数据库名称拼写 . 通常名称的格式为user_dbname
.例如:
在
php
脚本中,dbname
应为jack_student