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) に注目してください。