使用している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には先ほど作成したユーザー名を入力してください。