VirtualBoxを介したMySQLサーバーへのアクセス


20

MySQLサーバー(VM内)を取得して、クライアント(ホストマシン上)に応答しようとしています。すべてのメソッドは同じを返します:

Host '10.0.2.2' is not allowed to connect to this MySQL server

適切なポート転送を確認しました。また、次のmy.cnf行があることを確認しました。

skip-external-locking
bind-address = 0.0.0.0

これは私にはうまくいきませんでした。私はまた、次のように少し遊んでみました:

bind-address = 10.0.2.2

しかし、これも私にはうまくいきませんでした-サーバーが起動できませんでした。

私が間違っているところのアイデアはありますか?

更新。私はのためのprivilegiesチェックしていなかったroot@%のように私はすでに作成されているMySQLユーザのための権限を変更するにはどうすればよいですか?

解決しました。


MySQL内でどのユーザーアカウントを作成しましたか?
シェーンマッデン

私のアカウントはroot:rootです。ログインに問題があるのではないかと思います。さもないと、エラーメッセージに何かが表示されますAccess denied for root@10.0.2.2
ディフェンス

@ShaneMaddenごめんなさい。あなたはかなり正しかった。事は特権の中にあったroot@%。かなり私のせい。
ディフェンス

回答:


37

ほとんどのデフォルトのインストールでのルートアカウントのローカルホストのみ、他のシステムからのログインを許可したことは確かですか?MySQLのリファレンスマニュアル

これは、クライアントホストに一致するホスト値を持つユーザーテーブルに行がないことを意味します

だから、何もありません%10.0.2.2Hostすべての列。現在の設定を確認します。

select user,host from mysql.user where user='root';

現在と同じパスワードを使用して、新しいルートエントリを作成する可能性があります。

create user 'root'@'10.0.2.2' identified by 'yourpassword';
grant all privileges on *.* to 'root'@'10.0.2.2' with grant option;
flush privileges;

1
うん。ありがとうございました。あなたがここで述べたように、私も少し前にそれを解決しました。それが私の問題でした。
ディフェンス

1
:シェーンの答えあなたが自動化するスクリプトAnsible /ベイグラントのようなものを使用している場合は正しく、単一のコマンドで実行することができ、有用mysql -e "create user 'root'@'10.0.2.2' identified by 'yourpassword'; grant all privileges on *.* to 'root'@'10.0.2.2' with grant option; flush privileges;"
KayakinKoder
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.