>我通常使用以下方法进行连接:
$db_host = "localhost";
$db_username = "bill";
$db_pass = "mypassword";
$db_name = "theDB";
mysql_connect("$db_host","$db_username","$db_pass", TRUE) or die(mysql_error());
mysql_select_db("$db_name") or die("no database by that name");
我尝试将主机更改为下面的 RDS 终端节点,但没有运气:
$db_host = "mysql7.1234567890123.us-west-2.rds.amazonaws.com";
-安全组具有允许我的 IP 的入站规则。
-我尝试将"10.0.0.0/8"从 PHP 服务器连接到亚马逊 AWS 上的 MySQL 服务器添加到安全组
其他信息: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP_legacy.rds.html
有几件事可以使用PDO或mysqli进行连接。如果您已确保可以通过设置正确的安全组连接到 RDS,那么您就解决了主要问题。
在 PHP 中使用以下命令连接到 Amazon RDS:
$dbhost = $_SERVER['RDS_HOSTNAME'];
$dbport = $_SERVER['RDS_PORT'];
$dbname = $_SERVER['RDS_DB_NAME'];
$dsn = "mysql:host={$dbhost};port={$dbport};dbname={$dbname}";
$username = $_SERVER['RDS_USERNAME'];
$password = $_SERVER['RDS_PASSWORD'];
$dbh = new PDO($dsn, $username, $password);
$link = mysqli_connect($_SERVER['RDS_HOSTNAME'], $_SERVER['RDS_USERNAME'], $_SERVER['RDS_PASSWORD'], $_SERVER['RDS_DB_NAME'], $_SERVER['RDS_PORT']);
例 1.使用 PDO 连接到 RDS 数据库的示例
$dsn = 'mysql:host=mydbinstance.abcdefghijkl.us-east-1.rds.amazonaws.com;port=3306;dbname=mydb';
$username = 'sa';
$password = 'mypassword';
$dbh = new PDO($dsn, $username, $password);
例 2.使用 mysqli_connect() 连接到 RDS 数据库
的示例$link = mysqli_connect('mydbinstance.abcdefghijkl.us-east-1.rds.amazonaws.com', 'sa', 'mypassword', 'mydb', 3306);
如果没有任何效果,请启动像 Navicat 或 MySQL Workbench(免费)这样的 MySQL 客户端并输入所有必要的字段并尝试连接并查看它是否加载数据库。
这最终对我有用。感谢您的帮助!
$db_host = 'instance2.123456789.us-west-2.rds.amazonaws.com:3306'; //RDS Endpoint...
$db_username = 'myusername';
$db_pass = 'mypassword';
$db_name = 'myDB';
mysql_connect("$db_host","$db_username","$db_pass", TRUE) or die(mysql_error());
mysql_select_db("$db_name") or die("no database by that name");