ホームページ  >  記事  >  データベース  >  mysqlはリモートアクセスを許可します

mysqlはリモートアクセスを許可します

黄舟
黄舟オリジナル
2017-02-15 10:53:241295ブラウズ


mysql はデフォルトではリモートからアクセスできません。

なんと!なんと!みんなが絶賛した Dongdong ですが、実はデフォルトではスタンドアロン版になっています。

実際には、これは新しくインストールされた mysql のみに適用されます。新しくインストールされた mysql には、管理者 root というアカウントが 1 つだけあり、ローカルでのみアクセスできるようです (ただし、注意が必要です)。

それでは、同じ LAN 内の他のマシンがそのデータベースにアクセスできるようにするなど、リモート アクセスを有効にするにはどうすればよいでしょうか?

新しくインストールされた MYSQL の初期アカウント状況が次のとおりであると仮定します。

+------+-----------+| user | host      |
+------+-----------+| root | 127.0.0.1 |
| root | ::1       || root | localhost |
+------+-----------+3 rows in set (0.14 sec)

オンラインで検索したところ、一部の専門家は、ホストを '%' に変更すると、すべてのマシンからアクセスできるようになると言いました。

しかし、現在私が直面している状況は、サードパーティによって開発されたシステムがあり、そのデータベースからデータを読み取る必要があるということです。デフォルトでは、そのアカウントは上記のようになっており、ローカルでのみアクセスできます。アカウントを変更する必要がありますか?変化は非常に小さいのでリスクはないはずですが、それでも違和感を感じます。

しかし、インターネット上のすべてのチュートリアルは、基本的にホストを '%' に変更するという議論に基づいています。世の中にはたくさんの記事があります。

アイデアは次のようになると思います:

1. ユーザーを作成します
2. このユーザーにリモート アクセスを許可します

テスト後、成功しました。手順は次のとおりです。
1. ユーザーを作成します

create user 'test' identified by '123456'

この方法で作成されたユーザーのホストは '%' です

特定の IP へのアクセスを制限したい場合は、Jiangzi:

create user 'test'@'192.168.0.164' identified by '123456'

さて、それではユーザーが作成され、リモート アクセスが許可されます。すべて完了

2ですが、権限を付与する必要があります

grant all on db1.* to test@'%';

ここでは、テストのためにデータベース db1 のすべての権限が与えられています。

このようにして、test を使用して mysql データベースにアクセスできます。

3. パスワードをクリアします
そのサードパーティ システムの場合、mysql アカウントは root であり、パスワードは空です。接続文字列にどのように記述するのでしょうか?書き方は 3 つあることがわかりました:

server=192.168.128.130; user id=test; password=;database=db1server=192.168.128.130; user id=test; password='';database=db1server=192.168.128.130; user id=test; database=db1

上記はすべて機能します。コマンドラインからログインする場合は、次のように実行できます:
mysql -u test (Enter)
ログインできます。

では、パスワードをクリアするにはどうすればよいでしょうか? Can Jiang Zi:

set password for test@'%'=password('');

は mysql の素晴らしさにため息をつきます。そのアカウントは実際にはアカウント名 + ホストによって決定されるようで、これは複合主キーに相当します。このアイデアは非常に斬新です。とても実用的でもあります。

mysql はデフォルトではリモートからアクセスできません。

なんと!なんと!みんなが絶賛した Dongdong ですが、実はデフォルトではスタンドアロン版になっています。

実際には、これは新しくインストールされた mysql のみに適用されます。新しくインストールされた mysql には、管理者 root のアカウントが 1 つだけあり、ローカルでのみアクセスできるようです (ただし、注意が必要です)。

それでは、同じ LAN 内の他のマシンがそのデータベースにアクセスできるようにするなど、リモート アクセスを有効にするにはどうすればよいでしょうか?

新しくインストールされた MYSQL の初期アカウント状況が次のとおりであると仮定します。

+------+-----------+| user | host      |
+------+-----------+| root | 127.0.0.1 |
| root | ::1       || root | localhost |
+------+-----------+3 rows in set (0.14 sec)

オンラインで検索したところ、一部の専門家は、ホストを '%' に変更すると、すべてのマシンからアクセスできるようになると言いました。

しかし、現在私が直面している状況は、サードパーティによって開発されたシステムがあり、そのデータベースからデータを読み取る必要があるということです。そのアカウントのデフォルトは上記であり、ローカルでのみアクセスできます。アカウントを変更する必要がありますか?変化は非常に小さいのでリスクはないはずですが、それでも違和感を感じます。

しかし、インターネット上のすべてのチュートリアルは、基本的にホストを '%' に変更するという議論に基づいています。世の中にはたくさんの記事があります。

アイデアは次のようになると思います:

1. ユーザーを作成します
2. このユーザーにリモート アクセスを許可します

テスト後、成功しました。手順は次のとおりです。
1. ユーザーを作成します

create user 'test' identified by '123456'

この方法で作成されたユーザーのホストは '%' です

特定の IP へのアクセスを制限したい場合は、Jiangzi:

create user 'test'@'192.168.0.164' identified by '123456'

さて、それではユーザーが作成され、リモート アクセスが許可されます。すべて完了

2ですが、権限を付与する必要があります

grant all on db1.* to test@'%';

ここでは、テストのためにデータベース db1 のすべての権限が与えられています。

このようにして、test を使用して mysql データベースにアクセスできます。

3. パスワードをクリアします
そのサードパーティ システムの場合、mysql アカウントは root であり、パスワードは空です。接続文字列にどのように記述するのでしょうか?書き方は 3 つあることがわかりました:

server=192.168.128.130; user id=test; password=;database=db1server=192.168.128.130; user id=test; password='';database=db1server=192.168.128.130; user id=test; database=db1

上記はすべて機能します。コマンドラインからログインする場合は、次のように実行できます:
mysql -u test (Enter)
ログインできます。

では、パスワードをクリアするにはどうすればよいでしょうか? Can Jiang Zi:

set password for test@'%'=password('');

は mysql の素晴らしさにため息をつきます。そのアカウントは実際にはアカウント名 + ホストによって決定されるようで、これは複合主キーに相当します。このアイデアは非常に斬新です。とても実用的でもあります。

上記は、mysql でリモート アクセスを可能にするものです。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。