题 无法连接到memcache主机!


我是memcached的新手! 我成功安装并在我的主机A(Ip 192.168.1.102)中使用此命令启动了memcached

memcached -u memcached -d -m 30 -l 127.0.0.1 -p 11211

我还将这些条目添加到iptables中

-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 11211 -j ACCEPT

重启iptables服务,它听取了端口11211

telnet也有效!

telnet localhost 11211

试试127.0.0.1 ...... 连接到localhost。 逃脱角色是'^]'。

但我使用此脚本memcached_test.php从主机B(IP 192.168.1.103)连接到此主机A.

<?php
$memcache = new Memcache;
$memcache->connect('192.168.1.102', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";

$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";

var_dump($get_result);
?>

当我在主机B(192.168.1.103)的服务器中浏览此脚本时。我收到了这个错误

警告:Memcache :: connect()   [memcache.connect]:无法连接   192.168.1.102:11211,连接被拒绝(111)in   第3行的/var/www/memcache_test.php   无法连接

请告诉我如何解决这个问题!


16
2017-09-10 04:32






答案:


# memcached -u memcached -d -m 30 -l 127.0.0.1 -p 11211

您会注意到命令行中有“-l 127.0.0.1”。这告诉memcached只能监听lo接口。如果要从远程计算机访问它,则需要删除命令行的这一部分。


12
2017-09-10 05:37



非常感谢你...我用192.168.1.102替换127.0.0.1,现在它正常工作! - billyduc