web-dev-qa-db-ja.com

MySQLはリモートサーバーに接続できません

リモート仮想マシン(Windows Server 2008)の1つにMySQLサーバーがあります。昨日まで、ローカルマシンにインストールされたワークベンチの助けを借りて、MySQLサーバーに接続することができました。

昨日、仮想マシンがインストールされているマシンの再起動がありました。その後、MYSQLに接続できません。この特定のVMをpingおよびリモート接続できますが。 VMにインストールされたワークベンチ内でクエリを実行することもできます。

私はネットワーキングやセキュリティ関連のものがあまり得意ではありません。この問題を解決するのを手伝ってください。

エラー:

ホストからABC:3306のサーバーへのユーザー 'root'の接続試行が失敗しました: 'ABC'のMySQLサーバーに接続できません(10060)

9
TBA

本当にこれは考えられる理由の大きさかもしれません。うまくいけば、これは始まりです:

基本的なネットワークを確認する

MySQL仮想マシンからコマンドプロンプトを開き、IPCONFIG /ALL。これにより、異なるネットワークアダプターにバインドされているすべてのIPアドレスが表示されます。

接続しているIPアドレスがそこにリストされていることを確認します。仮想マシンは、再起動後に静的IPを持つのではなく、DHCPから新しいIPを取得している可能性があります。

ホスト名vs IP

ホスト名解決を確認する必要があります。引用されたエラーから、サーバーIPではなくホスト名に接続していることが示唆されます。マシンが正しいIPアドレスを使用してホスト名に解決できることを確認します。接続文字列でサーバーの実際のIPのホスト名を変更することもできます。

MySQL構成ファイル

WindowsでMySQLを実行していると言いましたが、my.cnfからmy.ini。 4.1.5より前の古いバージョンのMySQLの構成ファイルは、通常c:\my.iniまたはc:\windows\my.ini。これ以降のバージョンの場合、デフォルトの場所は通常インストールディレクトリです%PROGRAMDATA%\MySQL\MySQL Server xxx

構成ファイルを見つけたら、メモ帳(または同様のテキストエディター)で開き、[mysqld]セクションとport=接続しようとしているポートとbind-address=接続しようとしているIPアドレス。

サーバーポート

MySQL仮想サーバーからコマンドプロンプトを開き、netstat –ano、これはプロセスのリストと、それらがリッスンしているIP /ポートを表示します。 MySQLサーバーがここにリストされ、構成ファイルが定義するのと同じポートとIPでリッスンする必要があります。

Windowsファイアウォール

MySQLを許可するためのファイアウォールルールが必要です。次の例では、デフォルトポート3306にファイアウォールルールを追加します

netsh advfirewall firewall add rule name="MySQL Server" action=allow protocol=TCP dir=in localport=3306

これがマシン固有かどうかを特定します

MySQL Workbenchアプリケーションを別のワークステーションでセットアップし、接続して、これがグローバルな問題なのか、特定のワークステーションに関連するものなのかを特定することができます。

24
Steve

データベースのmysql管理者は、mysqlサーバーへのリモート接続を許可する必要があります。 my.cnfでこれを変更します。

bind-address    = 127.0.0.1 # this shoul be your mysql server ip

これをコメント:

# skip-networking
10
Volkan Ulukut

変更されたIPに対して構成がセットアップされた可能性があります。デフォルトでは、特定のスキーマまたはスキーマのグループの特定のユーザーに明示的に許可を与えない限り、mysqlはリモートホストからの接続を許可しません。たとえば、次のような場合:

GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

たぶんあなたが実際にしたことは、あなたのローカルマシンのアドレスであるあなた自身のIPアドレスに許可を設定することであり、あなたのローカルマシン(リモートサーバーではない)がそのIPアドレスを変更した場合、mysqlはあなたが接続しない限り「1.2.3.4」のIPアドレスがありますが、動的IPアドレスを持っている場合は明らかにもう持っていません(DSL /ケーブル接続で一般的)

したがって、SSHまたはTelnet、またはWindowsサーバーに使用するものを介して接続し、rootとしてmysqlにアクセスして、これを実行します。

SELECT * from information_schema.user_privileges;

これにより、すべてのユーザーに対する許可と、接続が許可される方法が表示されます。ローカルIPアドレスまたはワイルドカード(リモートマシンからサーバーに接続できる)が表示されない場合は、次のように設定する必要があります。

GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

もちろん、USERNAMEはユーザーです。ワイルドカード/ドット/ワイルドカードがあると、そのユーザーが任意のネットワークの任意のユーザーから任意のスキーマ(mysqlではデータベース)に接続できるようになります。ただし、接続する必要がある特定のスキーマのユーザーに対してのみ許可を行うことをお勧めします。

その後、実際に正しい情報を持っていて、まだ接続できない場合は、 nmap などのポートスキャナーを使用してポートスキャンを実行し、mysqlが次のとおりかどうかを確認します。

  1. 外部ネットワークを開いて聞く
  2. 実際に接続するポートで実行する

1が真の場合、ポートの構成に誤りがある可能性があるため、2をチェックします。しかし、これらの2つのポイントのいずれかが機能する場合、ネットワーク構成ではなく、ユーザー設定または他の何かのように聞こえます。

6
Gustavo Rubio

指定したポートにセキュリティが追加された場合、つまり3306であることを確認しようとしましたか?.

2
zeeshan
GRANT ALL ON *.* to user@'%' IDENTIFIED BY 'password';

このコマンドは、@ Gustavo Rubioがすでに適切な説明を行っているすべてのユーザーに役立つはずです。

開いているポートを確認するには、仮想マシンでcmdを実行して入力します。

netstat -a

TCP    127.0.0.1:3360     Hostname:3360   LISTENING

My.cnfはMysql-install-path\MySQL\MySQL Server xxxにあります。変更する前に元のバックアップを確認してください。

[ローカル] MySQLサーバーに接続できません

Microsoft WindowsでのMySQL Serverインストールのテスト

MySQL Workbench:Windowsの方法でWindowsサーバーでMySQLを管理する

1
XXX

初めて、mysqlへの接続がファイアウォールによってブロックされていないことをテストして確認する必要があります。

クラスター内の各ホストでファイアウォールを無効にするには、各ホストで次の手順を実行します。

1。既存のiptablesルールセットを保存します。

iptables-save > /root/firewall.rules

2。 iptablesを無効にします。

RHEL、CentOS、Oracle、およびDebianの場合:

chkconfig iptables off

そして

/etc/init.d/iptables stop

SLESの場合:

chkconfig SuSEfirewall2_setup off

そして

rcSuSEfirewall2 stop

Ubuntuの場合:

service ufw stop

https://www.cloudera.com/documentation/enterprise/5-7-x/topics/install_cdh_disable_iptables.html

0
Adam Endvy

セットアップによって異なりますが、cPanelを使用している場合は、RemoteMYSQLに移動してホストを入力します。ワイルドカードを使用することもできます。私がエラーを受け取っていたとき、以下が私のために働いた

「ユーザー ''としてDBサーバー ''に接続できませんでした。ポート:ホスト ''はこのMySQLサーバーへの接続を許可されていません」

cPanel setup to allow remote mysql connection

0
Robert Sinclair