MySQLは最も人気のあるオープンソースのリレーショナルデータベース管理システムです。
MySQLデータベースサーバーの最新バージョンであるバージョン8.0は、デフォルトのCentOS8リポジトリからインストールできます。
MySQL 8.0では、多くの新機能と変更が導入され、一部のアプリケーションがこのバージョンと互換性がなくなりました。インストールするMySQLのバージョンを選択する前に、CentOSサーバーにデプロイするアプリケーションのドキュメントを参照してください。
CentOS 8は、MySQL5.7の「ドロップイン置換」であるMariaDB10.3も提供しますが、いくつかの制限があります。アプリケーションがMySQL8.0と互換性がない場合は、MariaDB10.3をインストールしてください。
このチュートリアルでは、CentOS8システムにMySQL8.0をインストールして保護する方法を示します。
CentOS8へのMySQL8.0のインストール#
CentOSパッケージマネージャーをrootまたはsudo権限を持つユーザーとして使用してMySQL8.0サーバーをインストールします。
sudo dnf install @mysql
@mysql
モジュールはMySQLとすべての依存関係をインストールします。
インストールが完了したら、MySQLサービスを開始し、次のコマンドを実行して起動時に自動的に開始できるようにします。
sudo systemctl enable --now mysqld
MySQLサーバーが実行されているかどうかを確認するには、次のように入力します。
sudo systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2019-10-17 22:09:39 UTC; 15s ago
...
MySQLの保護#
mysql_secure_installation
を実行します いくつかのセキュリティ関連の操作を実行し、MySQLルートパスワードを設定するスクリプト:
sudo mysql_secure_installation
VALIDATE PASSWORD PLUGIN
を設定するように求められます 、MySQLユーザーのパスワードの強度をテストし、セキュリティを向上させるために使用されます。パスワード検証ポリシーには、低、中、強力の3つのレベルがあります。 ENTER
を押します パスワード検証プラグインを設定したくない場合。
次のプロンプトで、MySQLrootユーザーのパスワードを設定するように求められます。これを行うと、スクリプトは匿名ユーザーを削除し、rootユーザーのローカルマシンへのアクセスを制限し、テストデータベースを削除するように要求します。すべての質問に「Y」(はい)と答える必要があります。
コマンドラインからMySQLサーバーと対話するには、依存関係としてインストールされているMySQLクライアントユーティリティを使用します。次のように入力して、rootアクセスをテストします。
mysql -u root -p
プロンプトが表示されたらrootパスワードを入力すると、以下に示すようにMySQLシェルが表示されます。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.17 Source distribution
それでおしまい! CentOSサーバーにMySQL8.0をインストールして保護し、使用する準備が整いました。
CentOS8リポジトリに含まれているMySQL8.0サーバーは、古いmysql_native_password
を使用するように設定されています。 CentOS8の一部のクライアントツールとライブラリはcaching_sha2_password
と互換性がないため、認証プラグイン メソッド。これは、アップストリームのMySQL8.0リリースでデフォルトとして設定されています。
mysql_native_password
ほとんどのセットアップでは、この方法で問題ありません。ただし、デフォルトの認証プラグインをcaching_sha2_password
に変更する場合 より高速でセキュリティが向上している場合は、次の構成ファイルを開きます。
sudo vim /etc/my.cnf.d/mysql-default-authentication-plugin.cnf
default_authentication_plugin
の値を変更します caching_sha2_password
へ :
[mysqld]
default_authentication_plugin=caching_sha2_password
ファイルを閉じて保存し、MySQLサーバーを再起動して変更を有効にします:
sudo systemctl restart mysqld