0

Win7 で VirtualBox 4.2.16 を実行しています。CentOS 6.4にMySQLサーバーがあります。Win7 から CentOS への Telnet は問題ありません。

mysql -u root -h 192.168.56.102 -p CentOS で問題ありません。

これは私がユーザーテーブルに持っているものです:

mysql> select user, host from user;
+------+----------------+
| user | host           |
+------+----------------+
| mm   | 127.0.0.1      |
| root | 127.0.0.1      |
| mm   | 192.168.56.102 |
| root | 192.168.56.102 |
| mm   | localhost      |
| root | localhost      |
+------+----------------+

6 rows in set (0.00 sec)

MySQL status:

mysql  Ver 14.14 Distrib 5.6.13, for Linux (x86_64) using  EditLine wrapper

Connection id:      14
Current database:   
Current user:       root@loc
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.6.13-log MySQL Community Server (GPL)
Protocol version:   10
Connection:     192.168.56.102 via TCP/IP

/usr/my.cnf:

[mysqld]

log_bin
port = 3306
bind-address = 192.168.56.102

/etc/hosts:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.102 loc

それでも、192.168.56.102 ポート 3306 で Win7/HeidiSQL から root に接続しようとすると、

SQL エラー (1130)... ホスト '192.168.56.1' は、この MySQL サーバーへの接続を許可されていません。

CentOS ファイアウォールはダウンしていますが、私の知る限り、これはファイアウォールの問題ではありません... 何かアイデアはありますか?


いくつかの調査の後、この問題を解決しました。ユーザー テーブルには、ユーザーごとに 3 つのエントリがあります。ホスト %、ホスト localhost、ホスト 192.168.56.101

これは、コマンド GRANT ALL ON によって実現されます。TO root@'X' IDENTIFIED BY "pass" WITH GRANT OPTION;

ここで、X = %、localhost、192.168.56.101

このようにして、ゲスト MySQL サーバーはゲストと Win7 ホストの両方から接続できます。

4

0 に答える 0