我正在开发一个具有 MySQL 访问权限的 PHP 网站。我的托管站点是共享的,我从phpmyadmin
安装在共享托管服务器上的数据库创建了一个数据库。我创建了 2 个用户,一个具有管理权限,另一个只有读/写权限。我可以使用两个帐户成功连接 phpmyadmin,但是当我尝试使用相同的帐户和使用相同的凭据访问 mysql 时,php 给了我一个:
Database connection failed: Access denied for user 'myusername'@'localhost' (using password: YES)
这很奇怪。PHPMyAdmin
说服务器是本地主机,这意味着我mysql_connect
在 php 中使用正确的服务器参数来执行我的函数。
有谁知道出了什么问题?有没有可能只为 PHPMyAdmin 启用 mysql(这很荒谬)?
非常感谢您,我将不胜感激。:)
这是一个示例代码(出于安全目的,替换了用户名和密码):
defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
defined('DB_USER') ? null : define("DB_USER", "host_admin");
defined('DB_PASS') ? null : define("DB_PASS", "mysuperpassword");
defined('DB_NAME') ? null : define("DB_NAME", "mydb_inhostingserver");
...
$this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$this->connection) {
die("Database connection failed: " . mysql_error());
} else {
$db_select = mysql_select_db(DB_NAME, $this->connection);
if (!$db_select) {
die("Database selection failed: " . mysql_error());
}
}
...
Database connection failed: Access denied for user 'host_admin'@'localhost' (using password: YES)
我还回应了 4 个常量,它们的值是正确的!我真的迷路了……
附加信息:
- FTP地址为:ftp.thewebsiteimtalkingabout.com
- PhpMyAdmin 地址为:mysql.thewebsiteimtalkingabout.com
那么这是否意味着我的代码和 MySQL 的 phpmnyadmin 运行在同一台主机上?
回答:
好的,所以我正在测试他们在不同服务器中的理论,尽管他们的域是相同的。我提取了它们各自的ip地址,发现它们是不同的。然后我将“localhost”参数替换为 phpmyadmin 所在的 ipaddress,然后繁荣!它现在已连接。非常感谢大家的回复!