UbuntuにMySQLをインストールして設定する方法【初心者向け完全ガイド】
MySQLは、オープンソースで強力かつ広く利用されているリレーショナルデータベース管理システム(RDBMS)です。データを1つまたは複数のテーブルに整理し、テーブル間のデータ型を相互に関連付けることができます。SQL(Structured Query Language)はRDBMSと連携して動作し、大量のデータを保存・管理したい場合には、リレーショナルデータベースとSQLの活用が標準的な選択肢となります。
本記事では、Ubuntu 18.04サーバーにMySQLをセットアップする手順を解説します。認証の有効化、サービス管理の方法に加え、最後に設定が正しく完了したことを確認するためのテスト方法まで、順を追って紹介します。
ステップ1:MySQLクライアントのインストール
サーバーにリモート接続するために、まずmysql-clientをインストールします。
sudo apt install mysql-client -y
クライアントのバージョンを確認し、インストールが成功したかどうかをチェックしましょう。
mysql -V
出力例:
mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
これで、以下のコマンドを使ってMySQLサーバーへのリモート接続を確立できます。
mysql -u <username> -p <password> -h HOSTNAME_OR_IP
ステップ2:MySQLサーバーのインストール
MySQLをインストールする前に、Ubuntuサーバーが正しくセットアップされ、設定されていることを確認してください。Ubuntu 18.04サーバーのデフォルトリポジトリには、MySQL 5.7が含まれています。まずaptコマンドでシステムパッケージを更新します。
sudo apt update
続いて、以下のコマンドでMySQLサーバーパッケージをインストールします。
sudo apt install mysql-server -y
ステップ3:MySQLの設定
サイバー攻撃が日常化している現在では、サーバーインストール後にデフォルト設定を変更することがセキュリティの基本とされています。このセクションでは、リモートからのrootログインやデフォルトユーザーアカウントなど、安全でない初期設定を排除するためのMySQLサーバー設定方法を説明します。MySQLでは、簡単なセキュリティスクリプトを実行するだけで、これらの変更を自動的に行えます。
sudo mysql_secure_installation
スクリプトを実行すると、MySQLのデフォルトセキュリティ設定を変更するための複数の質問(Yes/No形式)が表示されます。たとえば最初のプロンプトでは、パスワード検証用プラグインをセットアップするかどうかを尋ねられるので、Yesと答えて進みましょう。
次に、MySQLのrootユーザーアカウントのパスワード設定を求められます。Validate Passwordプラグインを有効にすると、3段階のパスワード強度ポリシーと長さの基準に基づいてパスワードを設定できるようになります。
希望するパスワード強度の番号を入力すると、新しいパスワードの設定と、確認のための再入力を求められます。
パスワードを設定すると、その強度が表示され、処理を続行するかどうかを尋ねられます。
続いて、以下の項目について順番に質問されます。
- 匿名テストユーザーの削除
- rootユーザーによるリモートログインの無効化
- テストデータベースの削除
- 権限テーブルの再読み込みによる変更の反映
デフォルト設定のままセキュリティルールを適用するには、Yを入力して進めてください。
MySQL 5.7.6より前の古いバージョンでは、データベースディレクトリの手動初期化が必要です。それ以降のバージョンでは、以下のコマンドを実行します。
mysqld --initialize
ステップ4:MySQLユーザー認証の調整
MySQLユーザーアカウントにパスワードを設定した場合でも、デフォルトの認証設定では接続時にパスワードが使用されません。代わりに、auth_socketプラグインによってユーザーが自動的に認証されます。このプラグインは利便性に優れていますが、リモートクライアントからデータベースへアクセスしたい場合には実用的ではありません。
パスワードなしのデータベースアクセスは、外部プログラムからアクセスする際の作業を複雑にします。そこでこのセクションでは、接続時にユーザーを認証するための2つの方法を紹介します。
1. パスワードによるrootユーザー認証
パスワードによるユーザー認証を有効にするには、プラグインを「auth_socket」から「mysql_native_password」に変更します。まずsudo mysqlコマンドでMySQLプロンプト画面を開き、現在使用されている認証プラグインを確認します。
SELECT user, authentication_string, plugin, host FROM mysql.user;
上記のスクリーンショットのように、rootクライアントは「auth_socket」プラグインを使用して認証されています。rootクライアントのパスワード認証を有効にするには、ALTER USERステートメントで「mysql_native_password」プラグインを設定します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
変更を保存します。
FLUSH PRIVILEGES;
MySQLの「FLUSH PRIVILEGES」ステートメントは、ALTER、INSERT、UPDATE、DELETE句によって加えられたデータベーステーブルへの変更を保存します。
各ユーザーが使用している認証方式を確認し、rootクライアントが「auth_socket」プラグインを使用しなくなったことを確かめるため、同じコマンドを再度実行します。
SELECT user,authentication_string,plugin,host FROM mysql.user;
これで、rootユーザーは以下のコマンドで認証を行い、サーバーに接続できるようになります。
sudo mysql -u root -p
2. 専用ユーザーの作成
mysql_native_passwordを使用せずに認証を有効化するもう一つの方法として、専用ユーザーを作成する方法があります。
sudo mysql
新しいアカウントを作成し、すべての権限を付与することで、新規ユーザーに管理者レベルの制御権を与えます。その後、MySQLプロンプトを終了します。以下のSQLクエリを1つずつ実行してください。
CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'ubuntu'@'localhost' WITH GRANT OPTION;
exit
systemctlでMySQLサービスを管理・テストする
systemctl enableコマンドを使用して、Ubuntuサーバー起動時にサービスが自動的に実行されるよう設定します。
sudo systemctl enable mysql
また、以下のコマンドでサーバーが稼働中であることを確認できます。
sudo systemctl status mysql
または
sudo systemctl status mysql.service
MySQLのインストール後、サービスは自動的に起動しますが、起動していない場合は以下のコマンドで開始できます。
sudo systemctl start mysql
UbuntuでMySQLサーバーを始めよう
MySQLは、オープンソースで使いやすく、スケーラブルかつ堅牢なデータベース管理システムです。また、LAMP/LEMPスタックモデルやWebアプリケーション技術に不可欠な要素でもあります。このRDBMSは、最近のバージョンではシンプルなインストールと容易な設定が可能になっています。
本記事では、MySQLの仕組みを学び始めるための基本的な環境構築手順を解説しました。さらに、デフォルト設定の脆弱性を避けるための初期段階の重要なセキュリティ対策についても取り上げています。MySQLのセキュリティをさらに強化したい場合は、高度なセキュリティTipsもあわせて参考にしてみてください。
-
UbuntuでPlank Dockをインストール・設定する方法【徹底解説】
Macがランチャー型ドックを世に広めたきっかけとなったかもしれませんが、その完成形と言えるのはLinuxです。「Plank」というアプリを使えば、デスクトップにおしゃれで実用的なドックを簡単に設置できます。ドックからは、お気に入りのアプリを素早く起動したり、実行中のアプリを切り替えたり、便利な情報をひと目で確認したりできます。 この記事では、UbuntuにPlankをインストールし、お気に入りアプリへのクイックアクセスを実現するための手順と設定方法を詳しく解説します。 Plankのインストール方法 Ubuntuや、Mintなどの互換ディストリビューションをお使いの場合、Plankは標
-
Ubuntu 20.04にフォントをインストールする方法を徹底解説
最新版のUbuntuに標準搭載されているフォントは、多くの人にとって「十分すぎるほど」充実しています。しかし、仕事の都合上さらに多くのフォントが必要な方や、単純にもっと多くの選択肢を持ちたい方もいるでしょう。この記事では、Ubuntu 20.04に新しいフォントをインストールするさまざまな方法を、初心者の方にもわかりやすく解説します。定番:MicrosoftコアフォントのインストールLinuxにフォントを追加するチュートリアルといえば、まず真っ先に登場するのがMicrosoftのコアフォントです。一部のフォントは今なお絶大な人気を誇っており、Windowsユーザーとファイルをやり取りする機会が