エックスサーバーVPS上のUbuntuにMySQLをインストールする手順は以下の通りです。
またリモートから接続できる状態まで解説します。
エックスサーバーVPSのコンソールを開きます。
ユーザー名とパスワードを入力します。
目次
Toggleシステムのパッケージを更新
まず、システムのパッケージリストを更新します。
これにより、最新のソフトウェアリストを取得できます。
1 2 |
sudo apt update sudo apt upgrade |
MySQLをインストール
次に、MySQLサーバーをインストールします。
1 |
sudo apt install mysql-server |
これでMySQLサーバーがインストールされます。
MySQLのセキュリティ設定
インストール後、MySQLのセキュリティを強化するためのスクリプトを実行します。
1 |
sudo mysql_secure_installation |
このコマンドを実行すると、以下のような質問が表示されます。推奨される設定を行うには、次の手順に従ってください:
- VALIDATE PASSWORD PLUGIN: パスワードの強度を設定するかどうか聞かれます。強いパスワードを求めるなら「Yes」を選びますが、必要に応じて「No」でも構いません。
- Remove anonymous users: 匿名ユーザーを削除するかどうか。セキュリティのために「Yes」とします。
- Disallow root login remotely: リモートからのrootログインを無効にするかどうか。「Yes」を推奨します。
- Remove test database and access to it: テストデータベースを削除するか。「Yes」を推奨します。
- Reload privilege tables now: 権限テーブルをリロードするかどうか。「Yes」を選びます。
MySQLの起動状態確認と自動起動の有効化
MySQLが正しくインストールされ、起動しているかを確認します。
1 |
sudo systemctl status mysql |
MySQLが「active (running)」と表示されていれば正常に稼働しています。
また、VPS再起動時にMySQLも自動で起動するようにします。
1 |
sudo systemctl enable mysql |
MySQLへのログインと設定
MySQLのrootユーザーでログインします。
1 |
sudo mysql |
次に、MySQLのrootユーザーにパスワードを設定します(この操作はmysql_secure_installationで済んでいる場合はスキップできます)。
1 2 |
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新しいパスワード'; FLUSH PRIVILEGES; |
必要なポートの開放(リモート接続用)
デフォルトではMySQLはリモート接続を許可していないため、リモートからアクセスする場合は、以下の設定を追加します。
MySQLの設定ファイル編集
/etc/mysql/mysql.conf.d/mysqld.cnfを編集し、bind-addressの行を確認します。
1 |
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf |
bind-addressがデフォルトでは127.0.0.1に設定されています。リモートからの接続を許可するには、bind-addressを次のように変更します。
1 |
bind-address = 0.0.0.0 |
ファイルを保存して閉じたら、MySQLを再起動します。
1 |
sudo systemctl restart mysql |
Firewallの設定(必要な場合)
UbuntuのFirewallを使用している場合、MySQLのポート(デフォルトは3306)を開放します。
1 2 |
sudo ufw allow 3306 sudo ufw reload |
MySQLにリモート接続するユーザーの作成
リモート接続用のユーザーを作成し、特定のホストからのアクセスを許可します。
1 2 3 |
CREATE USER 'ユーザー名'@'%' IDENTIFIED BY 'パスワード'; GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; |
ポート3306の解放
MySQLはデフォルトのポートは3306です。
VPSパネルの「パケットフィルター設定」にて3306を許可します。
これで、リモートからもMySQLにアクセスできるようになります。