gpt4 book ai didi

php - PDO 连接到外部 MySQL 数据库(来自 AWS)- "SQLSTATE[28000] [1045] Access denied for user"

转载 作者:行者123 更新时间:2023-11-30 23:06:15 25 4
gpt4 key购买 nike

设置如下:我有两台服务器,一台使用 AWS,另一台“外部”服务器。我希望 AWS 实例运行连接到外部 MySQL 的 PHP 脚本。我已授予 MySQL 用户访问外部 IP 地址(指定它们)的权限。该设置在我的本地计算机上使用 MySQL Workbench 运行(这样就可以使用可接受的 IP 地址连接到外部 MySQL。

因为 AWS 既有一个弹性 IP 地址,也有一个用于实际 $_SERVER['SERVER_ADDR'] 的不同 IP 地址。我现在允许两者连接。

try {
$db_ext = new PDO( 'mysql: host=xxx.xxx.xxx.xxx;
port=3306;
dbname=THE_DB_NAME',
'THE_USER_NAME', 'THE_USER_PASS' );
$db_ext->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch( PDOException $e ){
print $e->getMessage();
die();
}

现在当我运行它时出现错误:

SQLSTATE[28000] [1045] Access denied for user 'THE_USER_NAME'@'localhost' (using password: YES)

我很困惑...(还有它拒绝访问 'THE_USER_NAME'@'localhost' 而不是 'THE_USER_NAME'@'IP-OF-SERVER-RUNNING- THE-PHP-脚本'

最佳答案

mysql: host之间的空格。因此,只要允许 IP 地址,这段代码就可以从一台机器连接到另一台机器的 MySQL:

try {
$db_ext = new PDO( 'mysql:host=xxx.xxx.xxx.xxx;
port=3306;
dbname=THE_DB_NAME',
'THE_USER_NAME', 'THE_USER_PASS' );
$db_ext->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch( PDOException $e ){
print $e->getMessage();
die();
}

关于php - PDO 连接到外部 MySQL 数据库(来自 AWS)- "SQLSTATE[28000] [1045] Access denied for user",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com