[Linux環境] Centos7.xはMySQLをインストールし、Navicatおよびその他のリモート接続ツールを使用して2003を報告します-(10060不明なエラー)でMySQLサーバーに接続できません

この記事の内容

I.はじめに

第二に、エラーの理由

三、解決策

3.1ネットワークの問題

3.2アクセス許可の問題(最初にファイアウォールの問題を確認できます)

3.3ファイアウォールの問題

3.4サーバーポートのアクセス許可

3.5ポート番号が正しくありません


I.はじめに

最近、新しいAliyunサーバーCentos7.xを購入しました。MySQLをインストールした後、Xshellを介してサーバー上のMySQLにアクセスできますが、Navicatなどのリモート接続ツールを使用すると、2003年にエラーが発生します-MySQLサーバーに接続できません。 '8.131 .154.146'(10060 "不明なエラー")、しかしそれは午後全体の後に解決されました。長い間検索した後、それはまだファイアウォールの問題でした。このブログの目的は明確なメッセージを指摘することですまだ混乱している学生たちへ。いくつかの穴を迂回して道路。

第二に、エラーの理由

私が要約した理由は次のとおりです:(1)ネットワークの問題、(2)アクセス許可の問題、(3)ファイアウォールの問題(iptables)、(4)サーバーポートのアクセス許可、および(5)不正なポート番号。問題を次々とトラブルシューティングしていたのですが、ついに城壁のせいで接続できなくなりました。

三、解決策

3.1ネットワークの問題

次の図に示すように、サーバー上のMySQLデータベースに接続するためのユーザー名とパスワードを入力します。ネットワークに問題がないことを証明し、これを除外します。

3.2アクセス許可の問題(最初にファイアウォールの問題を確認できます)

MySQLにログインし、アカウントでリモート接続が許可されているかどうかを確認します。接続できない場合は、次の方法を試すことができます。

// MySQLにログインします。次のコマンドでは大文字と小文字は区別されません

コマンド:mysql>   mysql -u root -p

//任意のリモートホストがデータベースにアクセスできます

コマンド:mysql> GRANT ALL PRIVILEGES ON *。* TO'root '@'% 'WITH GRANT OPTION;

//変更を有効にするには、マイナーコマンドを入力する必要があります

コマンド:mysql> FLUSH PRIVILEGES;

次の図に示すように、承認が実行された後(つまり、上記の2番目のコマンドの後、エラー1133(42000):ユーザーテーブルに一致する行が見つかりません)が報告される場合があります。

このエラーを報告した後、flush特権 コマンドを実行した後、成功するか(幸運なことに、次の手順に進むことができます)、成功しない可能性があります。その後ユーザーユーザーのホスト属性を変更する必要があります。次に、フラッシュ特権を実行します。このコマンドで実行できます。

3.3ファイアウォールの問題

多くの場合、liunxシステムにWebサービスアプリケーション(tomcat、apacheなど)をインストールした後、他のコンピューターがアプリケーションとLinuxシステムのファイアウォール(centos-7、redhat)にアクセスできるようにする必要があります。など)は、デフォルトでは外部にのみ開かれています。ポートは、mysqlのポート3306を開かない場合があります。

centOsホストのポート設定は、/ etc / sysconfig / iptablesファイルで構成されます。(viエディターの使用法:esc:コマンドラインモード/挿入モード; i:挿入、wq:保存して終了、q:終了、q!:保存せずに終了)

入れNEW -m tcpの-p TCP --dport 3306 -j --stateの-A INPUT -m状態をACCEPTにランダムに配置していないポート22.下。これは、MySQLのリモート接続用のポートを開き、再起動のiptablesます。サービスは大丈夫です。

特記事項:多くのネチズンは、ファイアウォール構成の最後の行にこれら2つのルールを追加しているため、ファイアウォールの起動に失敗します。デフォルトのポート22ルールに正しいルールを追加する必要があります。

#80デフォルトポート#3306 MySQLデフォルトポート#8080Tomcatデフォルトポート

#system-config-firewallによって作成されたファイアウォール構成 
#このファイルを手動でカスタマイズすることはお勧めしません。 
*フィルタ 
:INPUT [0:0] ACCEPT 
:FORWARD [0:0] ACCEPT 
:OUTPUT [0:0] ACCEPT 
-A INPUT -m状態-state ESTABLISHED、関連ACCEPT -j 
-A入力が-p ICMP -j ACCEPT 
- A INPUT -i lo -j ACCEPT 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT 
-A INPUT -j REJECT –reject-with icmp-host-prohibited 
-A FORWARD -j REJECT –reject-with icmp-host-禁止された 
COMMIT 

/etc/init.d/iptables restart 

#最後にファイアウォールを再起動して、構成を有効にします。再起動に失敗した場合(iptables.serviceの開始に失敗しました:ユニットが見つかりません。)、他のブログを確認できます:[Linux環境] centos7 iptables.serviceの開始に失敗しました:ユニットではありませんファイアウォールが見つかりました

 

3.4 サーバーポートのアクセス許可

まず、AliまたはTencentサーバーコンソールでポート3306のアクセス許可が有効になっているかどうかを確認します。場所については、Baiduで確認してください。私のものは次のとおりです。

 以下は手動で追加した後のものです。下の画像を参照してください。

3.5 ポート番号が正しくありません

このため、解決がはるかに簡単です。ポート番号を注意深く確認することで解決できるので、繰り返しません。

 

 

結びの言葉:私はピットを踏んでいる学生を助けたいと思っています。

 

 

終わり!

おすすめ

転載: blog.csdn.net/weixin_44299027/article/details/110739974