SQLServerとMySQLServer間のリンクサーバーの問題について、クライアントの1人から連絡がありました。私は主にSQLServerを使用しているので、MySQLServerのインストールと接続は楽しかったです。問題をシミュレートしようとしていて、リンクサーバーを作成したかったのです。このブログでは、MySQL接続エラーを修正する方法を学びます[MySQL] [ODBC 5.3(w)ドライバー]ホスト「IP」はこのMySQLサーバーへの接続を許可されていません。
サーバーにMySQLサーバーをインストールし、rootユーザーのパスワードを入力しました。 ODBCを使用してMySQLサーバーに接続しようとしたとき。
テストをクリックするとすぐに、以下のエラーが表示されます。
エラーメッセージに記載されているIPは、接続しようとしているクライアントのIPです。テキストメッセージは次のとおりです。
接続に失敗しました
[MySQL] [ODBC 5.3(w)ドライバー]ホスト「IP」はこのMySQLサーバーに接続できません:
SQL Serverの操作中にこのエラーが発生したことはないため、このエラーについてはわかりませんでした。調べていたとき、以下で学びました。
デフォルトでは、MySQLはリモートクライアントがMySQLデータベースに接続することを許可していません。
これを確認する最速の方法は次のとおりです。 mysql.userテーブルを確認すると、ホスト「localhost」を持つユーザー「root」のエントリがあります。
したがって、MySQLサーバーにクライアントに接続するためのアクセス許可を提供する必要があります。
回避策/解決策
まず、ファイアウォールの問題ではないことを確認してください。
前に説明したように、これは権限の問題です。その後、コマンドを使用して許可を与えることができます。
Use mysql; GRANT ALL ON *.* to root@'x.x.x.x' IDENTIFIED BY 'your-root-password';を使用します
MySQLWorkbenchを使用してこれを行うこともできます。以下のスクリーンショットは、従うべき手順を示しています。コマンドと同じように、グラフィカル画面でユーザー名、パスワード、およびIPを指定する必要があります。
このブログがお役に立てば幸いです。上記の変更後、このリモートクライアント(IP /ホスト名を指定)からmysqlデータベースに接続しようとしても、「ホストはこのMySQLサーバーへの接続を許可されていません」というエラーメッセージが表示されなくなります。 %を使用してすべてのホストを許可することもできますが、そのオプションは好みません。
私はMySQLの専門家ではないので、コメントして、もっと良い方法があるかどうか教えてください。