DynamoDB Local - 来自 PHP 的连接被拒绝
DynamoDB Local - Connection Refused from PHP
我是 运行 DynamoDB Local,端口 8080。这是用于启动数据库的命令:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -port 8080
转到 localhost:8080/shell/
生成 DynamoDB Javascript Shell。 shell 起作用并允许对本地数据库文件执行操作。使用 shell 创建的 db 文件名为 cUniqueSessionID_us-west-2.db
.
在一个 PHP 项目中,我有以下使用 DynamoDB
创建 table 的代码
$db = new \Aws\DynamoDb\DynamoDbClient([
'region' => 'us-west-2',
'version' => 'latest',
'endpoint' => 'http://localhost:8080/',
'credentials' => [
'key' => 'not-a-real-key',
'secret' => 'not-a-real-secret',
],
]);
$db->createTable([
'TableName' =>'SampleTable',
'AttributeDefinitions' => [
[ 'AttributeName' => 'Id', 'AttributeType' => 'N' ]
],
'KeySchema' => [
[ 'AttributeName' => 'Id', 'KeyType' => 'HASH' ]
],
'ProvisionedThroughput' => [
'ReadCapacityUnits' => 5,
'WriteCapacityUnits' => 6
]
]);
但是 运行 这会产生 Error executing "CreateTable" on "http://localhost:8080/"; AWS HTTP error: cURL error 7: Failed to connect to localhost port 8080: Connection refused
我试过关闭防火墙但没有成功。可能导致此错误的原因是什么?
我发现了问题。
我的 PHP 项目是 运行 在 Vag运行t 虚拟机中,但我是 运行 我本地机器上的 DynamoDB。因此,我的 PHP 代码中的 localhost
引用了 vag运行t localhost 但 DynamoDB 在我的 [=17] 上是 运行 =]机器的localhost.
为了解决这个问题,我 运行 Vag运行t 中的 DynamoDB。
我是 运行 DynamoDB Local,端口 8080。这是用于启动数据库的命令:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -port 8080
转到 localhost:8080/shell/
生成 DynamoDB Javascript Shell。 shell 起作用并允许对本地数据库文件执行操作。使用 shell 创建的 db 文件名为 cUniqueSessionID_us-west-2.db
.
在一个 PHP 项目中,我有以下使用 DynamoDB
创建 table 的代码$db = new \Aws\DynamoDb\DynamoDbClient([
'region' => 'us-west-2',
'version' => 'latest',
'endpoint' => 'http://localhost:8080/',
'credentials' => [
'key' => 'not-a-real-key',
'secret' => 'not-a-real-secret',
],
]);
$db->createTable([
'TableName' =>'SampleTable',
'AttributeDefinitions' => [
[ 'AttributeName' => 'Id', 'AttributeType' => 'N' ]
],
'KeySchema' => [
[ 'AttributeName' => 'Id', 'KeyType' => 'HASH' ]
],
'ProvisionedThroughput' => [
'ReadCapacityUnits' => 5,
'WriteCapacityUnits' => 6
]
]);
但是 运行 这会产生 Error executing "CreateTable" on "http://localhost:8080/"; AWS HTTP error: cURL error 7: Failed to connect to localhost port 8080: Connection refused
我试过关闭防火墙但没有成功。可能导致此错误的原因是什么?
我发现了问题。
我的 PHP 项目是 运行 在 Vag运行t 虚拟机中,但我是 运行 我本地机器上的 DynamoDB。因此,我的 PHP 代码中的 localhost
引用了 vag运行t localhost 但 DynamoDB 在我的 [=17] 上是 运行 =]机器的localhost.
为了解决这个问题,我 运行 Vag运行t 中的 DynamoDB。