2017-05-30 18 views
1

CentOS(v 7.3.1611)のボックスでポート3306で実行されているMariaDBデータベース(v 5.5.52)に接続しようとしています セキュリティ上の理由から、サーバーのポート3306ファイアウォールされる(telnet mysite.com 3306回アウト)ssh経由でmysqlに接続できません

私が設定した接続でサーバーにsshをすることができますので: ssh projectx

し、データベースに接続します。 mysql -u remote -p use staff;

私は続編プロでこの接続を期待しています取得するため私は私のラップトップからの接続:

enter image description here

しかし、私はこのエラーメッセージを取得しています:

Unable to connect to host 127.0.0.1, or the request timed out. MySQL said: Lost connection to MySQL server at 'reading initial communication packet', system error: 0

ユーザーがこれらの助成金があります。 show grants for 'remote'@'%'; +----------------------------------------------------------------------------------+ | Grants for [email protected]% | +----------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'remote'@'%' IDENTIFIED BY PASSWORD 'redacted' | | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON `staff`.* TO 'remote'@'%' | +----------------------------------------------------------------------------------+

を私は[mysqldの中でこれを持っています]セクションmy.cnf bind-address = *

いいえerr ors /var/log/mariadb/mariadb.logにログインしてください

+0

あなたのソフトウェア**は実際に**〜/ .ssh/configを使用していますか? // Nevermind - それはそうです:https://sequelpro.com/docs/get-started/get-connected/remote – Xatenev

+0

@Xatenev良い考えですが、はい、このような他のサーバーに問題なく接続しています。 –

+1

あなたは「設定された設定でサーバーにsshできる」と書いています=>サードパーティのサーバーに接続しようとしていますか?その場合、MysQL Host 127.0.0.1は間違っていて、サーバIPに置き換えてください(私はそう思っていますか? - その100%は確かではありません)。 – Xatenev

答えて

1

SSH接続を使用している場合は、リモートユーザ@'%'を定義する必要はありません。基本的にローカルマシンから接続しているため、127.0.0.1以外のインタフェースもバインドする必要はありません。

とにかく、bind-address127.0.0.にする必要があります(ローカルホストからの接続用)。 MySQLがすべてのインタフェースにバインドされるようにするには、0.0.0.0が必要です(ただし、sshの場合はこれは必要ありません)。

また、MySQLがローカルUNIXソケットではなくTCPを使用するように設定されていることを確認してください。マシンにssh-ingしてmysql -h 127.0.0.1 ...を実行してみてください。これが動作せず、mysql -h localhostが機能する場合、サーバーはUNIXソケットを使用するように設定されています。

リモートsshdデーモンは、ポート転送を許可するように設定する必要があります。 /etc/ssh/sshd_configに次を追加してください:

AllowTcpForwarding yes 
+0

私はsshでmysql -h 127.0.0.1 -u remote -pと接続することができます。また、 "narrower"ユーザ 'remote'@'127.0.0.1'を作成して試しましたが、成功しませんでした。 –

+0

'ssh -L 3306:localhost:3306 user @ remote-server'のようなものを試すことができますか?次にマシン 'mysql -h 127.0.0.1 ...'にローカルで接続してみてください。これにより、ローカル3306ポートへの接続がリモートの3306ポートへの接続に変わります。これはSequel Proが舞台裏でやっていることです。 – nimrodm

+0

同じエラーが表示されますが、今回はエラー番号が表示されます: 'ERROR 2013(HY000):MySQLサーバーへの接続が初期通信パケットを読み込んでいます。システムエラー:0 'です。今までありがとう! –

関連する問題