Ubuntu ゲストから Windows ホストにインストールされた Mysql にアクセスするにはどうすればいいですか?

Ubuntu ゲストから Windows ホストにインストールされた Mysql にアクセスするにはどうすればいいですか?

Windows 7 ホスト マシン上で Ubuntu をゲストとして実行しています。ゲストの実行には VMware Workstation を使用しています。

ホストに MySQL をインストールしました。Ubuntu ゲストからこの MySQL データベースにアクセスしたいと考えています。基本的に、Ubuntu ゲストで Django を使用してサンプル アプリケーションを開発しようとしており、そのためには MySQL が必要です。インターネット接続が非常に遅いため、Ubuntu 用の MySQL をダウンロードできず、ホスト OS に Python がインストールされていません。

Ubuntu ゲストから MySQL データベースに接続するにはどうすればよいですか?

答え1

mysql.userテーブルを確認する必要があります

通常、このクエリを実行すると、ユーザー名、ホスト アドレス、および MD5 で暗号化されたパスワードを確認できます。

SELECT user,host,password FROM mysql.user;

例 1: IP アドレスが '123.50.89.191' の Ubuntu サーバーから mysql に接続し、データベース 'mydata' 内のすべてのものに完全にアクセスして操作できる 'myclient' というユーザーを作成します。パスワードは 'permission' です。

GRANT ALL PRIVILEGES on mydata.*
TO 'myclient'@'123.50.89.191'
IDENTIFIED BY 'permission';

例 2: IP アドレスが '123.50.89.191' の Ubuntu サーバーから mysql に接続し、データベース 'mydata' 内のすべてのデータに対して INSERT と SELECT のみを実行できる 'myreadclient' というユーザーを作成します。パスワードは 'readpermission' になります。

GRANT INSERT,SELECT on mydata.*
TO 'myreadclient'@'123.50.89.191'
IDENTIFIED BY 'readpermission';

特定の権限を持つユーザーを作成する方法の詳細については、このURLにアクセスしてください

試してみる !!!

警告

プレーンテキストのパスワードではなく、MD5 形式でパスワードを設定することをお勧めします。

mysql> SET @X=PASSWORD('permission');
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @X;
+-------------------------------------------+
| @X                                        |
+-------------------------------------------+
| *1D6447E2F5B7AFD0E27D8E6CCA53099BE980803C |
+-------------------------------------------+
1 row in set (0.00 sec)

ここで、最初の例のパスワードを次のように設定します。

GRANT ALL PRIVILEGES on mydata.*
TO 'myclient'@'123.50.89.191'
IDENTIFIED BY PASSWORD @X;

MD5形式を使用した2番目の例は次のとおりです。

mysql> SET @X=PASSWORD('readpermission');
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT @X;
+-------------------------------------------+
| @X                                        |
+-------------------------------------------+
| *22DA1CEDDBA3B75FD193775AC69D9184105F0BE0 |
+-------------------------------------------+
1 row in set (0.00 sec)

GRANT INSERT,SELECT on mydata.*
TO 'myreadclient'@'123.50.89.191'
IDENTIFIED BY PASSWORD @X;

これを行うと、バイナリ ログまたは MySQL クライアント セッションを記録しているファイルにプレーン テキスト パスワードが記録されるのを防ぐことができます。

関連情報