1

それを機能させることはできません。これは私がこれまでに行ったことです:

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

そして最後に私のコンピューターから:

[nir@dhcppc4 ~]$ 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へのアクセスが拒否されました:

[nir@dhcppc4 ~]$ 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フォーラムでも解決しようとしています

4

1 に答える 1

3

解決した

問題:

私は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
于 2013-07-25T09:09:49.527 に答える