質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

2回答

14658閲覧

MySQLに外部から接続できない

ois

総合スコア50

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2018/01/11 06:12

さくらのVPS上のMySQLに自分のパソコンから接続したいのですが、エラーが出てしまいます。

試したコマンドは
mysql -u <user名> -h <IPアドレス> -p
で、出たエラーは
Can't connect to MySQL server on <IPアドレス> (61)
です。

今まで試したことは
<自分のパソコンから>
・ping(通りました)

<サーバー上>
・MySQLのポート確認(3306でした)
・GRANT ALL PRIVILEGES ON . TO <MySQLユーザ>@'<クライアントIP>' IDENTIFIED BY '<パスワード>' WITH GRANT OPTION;で外部接続できるユーザーを作る
・my.cnfで、bind-address = 0.0.0.0にする
・netstat -lntp(tcp 0 0 :::3306 :::* LISTEN 27573/mysqldでした)
・ファイアウォールの確認

で、ファイアウォールは、
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
を追加して、穴を開けました。

my.cnfの内容は以下です。

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock character-set-server=utf8 default-storage-engine=InnoDB innodb_file_per_table bind-address = 0.0.0.0 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysql] default-character-set=utf8

my.cnfのbind-addressか、ファイアウォールかが怪しいと思っていますが、これ以上どう確認すればいいかわかりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

設定ファイル変更してから、再起動しましたか?

sshできるならポートフォワードを試してみては?

コマンド:ssh -L <ローカルポート>:target:<接続先ポート> <接続先ホスト>

例:ssh -L 9999:target:3306 hogehogeHost

上記を設定した場合、ローカルの接続ポートを9999、ホストをlocalhostです。

投稿2018/01/11 08:07

編集2018/01/11 08:35
himakuma

総合スコア952

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ois

2018/01/11 08:28

再起動はしました! ポートフォワードは、どこを経由するのでしょう。概念はわかるのですが、今回のケースでどう使うのかわからないので、具体的に教えていただけると嬉しいです。
ois

2018/01/11 10:01

ssh -L 9999:target:3306 <IPアドレス>でやってみました。 接続に成功しました。この場合、ファイアウォールは問題なく、MySQLの設定に問題があるということになるのでしょうか。
himakuma

2018/01/11 10:10

すいません、その視点抜けてましたが、MYSQLのエラーが返却される時点で、 MYSQLへは到達していることになるので、ファイアウォールは通過しています。 なので、MYSQLの設定の問題です。 考えられるのは、権限の<クライアントIP>が間違っているが、一番簡単な問題ですね。 ネットワーク越しにアクセスするので、グローバルIPになると思います。 一度IPの制限をなくして、権限を設定して、接続してみてください。 それで接続できる場合は、IPの指定が間違っていることになると思います。
ois

2018/01/11 10:23

現在はGRANT ALL PRIVILEGES ON *.* TO 'test_user'@'%'……となっていますので、権限も与えてあるし、IPも制限なしでかかっているような感じがします。 この指定の仕方だとダメなんでしょうか or 他に問題箇所があるんでしょうか。
himakuma

2018/01/11 10:26

後は設定ファイルになると思いますが、詳細が分からないので、どの項目かまではわかりません。 MYSQLの接続ログなどを見てみると良いと思います。 インストールや設定によって場所は変わるので、探してみてください。
guest

0

まずサーバーにsshで接続できますか?

いけるならサーバーにログイン後

telnet localhost 3306

で、mysqldに接続ができるか確認してみるところから。
次は、自マシンにもどって

telnet サーバーのipアドレス 3306

それで通るならサーバー側のmysqlDB内のuserテーブルで
きちんと外部hostを許可した状態でユーザーが作成されているか確認してみてください

投稿2018/01/11 06:45

yambejp

総合スコア114829

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ois

2018/01/11 06:54

SSHは接続できます。 telnet入ってなかったのでyumでインストールして実行すると、 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. J 5.6.37�=#2tqYLN!�%lruwtbm}NLpmysql_native_passwordConnection closed by foreign host. と出てきました。 (telnetの設定をしてないので、そっちで引っかかってる?かもです。)
ois

2018/01/11 06:55

あと使用PCがMacなのですが、telnetコマンドは廃止されているようです。sshコマンドだと同様のチェックはできませんかね。他のコマンドでの確認方法があればご教授いただきたいです。
yambejp

2018/01/11 07:00

見た感じ「mysql_native_password」を要求されているので サーバー側は大丈夫そうですが・・・ Macのtelnet事情はよくわかりませんが、狭義のtelnet ポート23へのtelnet接続の話ではなく、単に生データをサーバーに送る telnetクライアントの件なので、さがせばないことはないんじゃないですかね?
ois

2018/01/11 07:02

かしこまりました。では、Mac側からもtelnetコマンド探して、試してみます!
ois

2018/01/11 07:08

ssh -p 3306 <ユーザー名>@<IPアドレス>をしたらrefusedされました。 パスワード聞かれる間もなかったので、ファイアウォールが怪しいですが、どう切り分けて行ったらいいでしょう。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問