2013-07-21 151 views
1

无法让它正常工作。这是我到目前为止已经完成:从远程服务器连接到Amazon EC2上的mysql - ERROR 2003

mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'xxxxxx'; 
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION; 
mysql> CREATE USER 'admin'@'%' IDENTIFIED BY 'xxxxxx'; 
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION; 
在AWS控制台

- > EC2 - >网络&安全 - >安全组 - >快速启动,1 - >入站选项卡 - >从选择 'MYSQL'下拉 - >添加规则 - >申请

编辑/etc/my.cnf并添加bind-address,然后

sudo /etc/init.d/mysqld restart 

sudo /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT 
sudo service iptables save 

终于从我的电脑:

[[email protected] ~]$ mysql -h xxx.xxx.xxx.xxx -u admin -p 
Enter password: 
ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (113) 

编辑: 运行netstat -lp | grep mysql(我没有看到在输出端口号):

tcp  0  0 *:mysql      *:*       LISTEN  -     

unix 2  [ ACC ]  STREAM  LISTENING  16003 -     /var/lib/mysql/mysql.sock 

加入/etc/my.cnf

port=3306 

现在netstat -lp | grep mysql

tcp  0  0 *:mysql      *:*       LISTEN  -     
unix 2  [ ACC ]  STREAM  LISTENING  37757 -     /var/lib/mysql/mysql.sock 

/etc/my.cnf文件:

[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
port=3306 
bind-address = 0.0.0.0 
#skip-networking 
# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

再加上我试图通过其他计算机连接,我无法连接,所以我想连接电脑

它不是一个问题,我得到了拒绝访问我的telnet:

[[email protected] ~]$ telnet xxx.xxx.xxx.xxx 3306 
Trying xxx.xxx.xxx.xxx... 
telnet: connect to address xxx.xxx.xxx.xxx: No route to host 

**我也试图解决它amazon ec2 forum

+0

运行'netstat -lp'是mysql正确在3306上侦听? – datasage

+0

你可以看到编辑 – Nir

+0

在你的mysql配置中启用了“skip-networking”吗? – datasage

回答

2

解决

问题:

我在iptables的这条线

REJECT  all -- anywhere    anywhere   reject-with icmp-host-prohibited 

这行只规则追加到列表的末尾,因此拒绝抓它首先

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT 

到解决它我需要把规则放在更高的链中,即使用-I开关像这样:

sudo iptables -I INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT 
相关问题