Windowsのグラフィカルツールから仮想マシン上のMySQLサーバーに接続する際の問題解決

使用しているLinux環境はUbuntu 16.04です。

MySQLのインストール手順

sudo apt-get install mysql-server-5.7

cd /etc/mysql コマンドでMySQLディレクトリに移動します。

以下のファイルが確認できます。

conf.d と mysql.conf.d はそれぞれフォルダであり、MySQLサーバーの設定ファイルは mysql.conf.d 内に存在します。一方で my.cnf はクライアント側の設定ファイルです。外部からの接続を行うには、mysql.conf.d 内の設定を変更する必要があります。

設定ファイルの編集

該当フォルダに移動し、mysqld.cnf が設定ファイルとなります。vimエディタを使用してこのファイルを開きます。

bind-address の値を確認してください。初期状態では127.0.0.1になっているはずですが、これを0.0.0.0に変更しました。

仮想マシン内のMySQLサーバーのデフォルト設定では bind-address が 127.0.0.1 に設定されており、これによりローカルでのみ接続可能となっています。Windows上のMySQL Workbenchなどのグラフィカルツールから接続するためには、bind-address を仮想マシンのIPアドレスまたは0.0.0.0に変更する必要があります。

変更後、MySQLサービスを再起動

sudo /etc/init.d/mysql restart

グラフィカルツール接続用のユーザー作成

「root」ユーザーではなく新しいユーザーを作成して接続することをお勧めします。

新規ユーザーの作成と権限付与の手順は以下の通りです。

1. MySQLサーバーへの接続

まず、rootユーザーでMySQLサーバーにログインします。Linux仮想マシンのターミナル上で以下のコマンドを実行します:

mysql -u root -p

パスワードを入力してログインします。

2. 新しいユーザーの作成

以下のコマンドで新しいユーザーを作成します。例えば、Windowsホスト(IPアドレス: 192.168.xxx.xxx)から接続できるようにしたい場合:

CREATE USER 'newuser'@'192.168.xxx.xxx' IDENTIFIED BY 'password';

ここで、'newuser' はユーザー名、'password' はパスワードです。

すべてのホストから接続できるようにするには、ワイルドカード '%' を使用します:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

3. 権限の付与

新規ユーザーに必要な権限を付与します。特定のデータベースに対する全権限を与える例:

GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'192.168.xxx.xxx';

すべてのデータベースに対して全権限を与える場合は:

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'192.168.xxx.xxx';

権限を付与した後、変更を反映させるために権限テーブルを更新します:

FLUSH PRIVILEGES;

これで、グラフィカルツールから接続できる状態になります。

接続情報では、Hostに仮想マシンのIPアドレス、Portはデフォルト値を使用し、Usernameには先ほど作成したユーザー名を入力してください。

タグ: MySQL Ubuntu 仮想マシン 接続設定 ユーザー管理

10月17日 05:24 投稿