MySQLは、最も人気のあるオープンソースのリレーショナルデータベース管理システムです。高速で使いやすく、スケーラブルで、人気のあるLAMP
の不可欠な部分です。 およびLEMP
スタック。
このチュートリアルでは、Ubuntu18.04マシンにMySQLをインストールして保護する方法を示します。
前提条件#
sudo権限を持つユーザーとしてログインしていることを確認してください。
UbuntuへのMySQLのインストール#
この記事を書いている時点で、公式のUbuntuリポジトリから入手できるMySQLの最新バージョンはMySQLバージョン5.7です。
UbuntuサーバーにMySQLをインストールするには、次の手順に従います。
-
まず、次のように入力してaptパッケージインデックスを更新します。
sudo apt update
-
次に、次のコマンドを使用してMySQLパッケージをインストールします。
sudo apt install mysql-server
-
インストールが完了すると、MySQLサービスが自動的に開始されます。 MySQLサーバーが実行されているかどうかを確認するには、次のように入力します。
sudo systemctl status mysql
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-06-20 11:30:23 PDT; 5min ago Main PID: 17382 (mysqld) Tasks: 27 (limit: 2321) CGroup: /system.slice/mysql.service `-17382 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
MySQLの保護#
MySQLサーバーパッケージには、mysql_secure_installation
というスクリプトが付属しています。 いくつかのセキュリティ関連の操作を実行できます。
次のように入力してスクリプトを実行します:
sudo mysql_secure_installation
VALIDATE PASSWORD PLUGIN
を設定するように求められます これは、MySQLユーザーのパスワードの強度をテストし、セキュリティを向上させるために使用されます。パスワード検証ポリシーには、低、中、強力の3つのレベルがあります。 ENTER
を押します パスワード検証プラグインを設定したくない場合。
次のプロンプトで、MySQLrootユーザーのパスワードを設定するように求められます。これを行うと、スクリプトは匿名ユーザーを削除し、rootユーザーのローカルマシンへのアクセスを制限し、テストデータベースを削除するように要求します。すべての質問に「Y」(はい)と答える必要があります。
rootとしてログイン#
コマンドラインからMySQLサーバーと対話するには、MySQLサーバーパッケージの依存関係としてインストールされているMySQLクライアントユーティリティを使用できます。
MySQL 5.7(およびそれ以降)を実行しているUbuntuシステムでは、rootユーザーはauth_socket
によって認証されます。 デフォルトのプラグイン。
auth_socket
プラグインは、localhost
から接続するユーザーを認証します Unixソケットファイルを介して。これは、パスワードを入力してrootとして認証できないことを意味します。
rootユーザーとしてMySQLサーバーにログインするには、次のように入力します。
sudo mysql
以下に示すように、MySQLシェルが表示されます。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.22-0ubuntu18.04.1 (Ubuntu)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
phpMyAdmin
などの外部プログラムからrootとしてMySQLサーバーにログインする場合 2つの選択肢があります。
1つ目は、認証方法をauth_socket
から変更することです。 mysql_native_password
へ 。これを行うには、次のコマンドを実行します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
FLUSH PRIVILEGES;
2番目の推奨オプションは、すべてのデータベースにアクセスできる新しい管理ユーザーを作成することです。
GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong_password';