他のPCからxamppをインストールしたPCのmysqlに接続する

この記事について

環境Windows、xampp(mysql)、ODBC
目的他のPCからODBC接続でxamppのmysqlに接続する
結果GRANT文でホスト名%(ワイルドカード)のユーザーを作って接続できた

つまずきポイント要約

  • 初期設定はlocalhostのみ許可。Host is not allowed to connectエラーになる
  • ホスト名を%にするとlocalhost以外からもアクセス可能になる

事象

他のPCからODBC接続でxamppをインストールしたPCのmysqlに接続を試みた際、Mysql Connecterのテスト接続でエラーが発生した。

エラー内容

Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server

原因

xamppの初期設定では、localhostからの接続だけが許可されているのでエラーになる。
他のPCから接続するには、接続の権限を持ったユーザーを作る必要がある。

対処

「mysql」という名前のデータベースに「user」という名前のテーブルがあるので、そこに新しいユーザーを加える。

書式

GRANT ALL PRIVILEGES ON 有効範囲(データベース名.テーブル名) TO ユーザー名@ホスト名 IDENTIFIED BY 'パスワード'

PRIVILEGES は、省略可。

実際のコマンド

GRANT ALL PRIVILEGES ON *.* TO testuser@'%' IDENTIFIED BY 'test'

GRANT構文については、こちら1こちら2

上のコマンドだと、以下の設定をしたことになる。

・ユーザー名:testuser
・パスワード:test
・ホスト名(@以降):ワイルドカード(%)← これでlocalhost以外からもアクセス可能になる。もし「localhost」と記述すれば、他のPCからはアクセスできない。
・all privileges は、「(GRANT権限以外の)すべての権限を与える」
・*.* は、「すべてのデータベースのすべてのテーブルに有効」という意味。

これでうまくいった。

他のPCからページが見れない場合は、こちら

参考ページ:こちら1こちら2

関連記事

タイトルとURLをコピーしました