世界で最も人気のあるオープンソースのリレーショナルデータベース管理システムであるMySQLは、デフォルトのDebianのリポジトリでは利用できません。 MariaDBは、Debian10のデフォルトのデータベースシステムです。
このチュートリアルでは、MySQLAptリポジトリからDebian10にMySQLをインストールして保護する方法について説明します。
MySQLリポジトリの構成#
MySQL APTリポジトリをシステムに追加するには、リポジトリのダウンロードページに移動し、次のwgetコマンドを使用して最新のリリースパッケージをダウンロードします。
wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb
ダウンロードが完了したら、sudo権限を持つユーザーとしてリリースパッケージをインストールします。
sudo apt install ./mysql-apt-config_0.8.13-1_all.deb
インストールするMySQLのバージョンを選択できる構成メニューが表示されます。
MySQL 8.0が事前に選択されています。MySQL5.7をインストールする場合は、MySQL Server & Cluster (Currently selected: mysql-8.0)
を選択します。 好みのMySQLバージョンを選択してください
MySQLバージョン8.0をインストールします。 OK
を選択します Tab
を押す Enter
を押します (上の画像に示されているように)。
MySQLのインストール#
次のコマンドを実行して、パッケージリストを更新し、MySQLサーバーパッケージをインストールします。
sudo apt update
sudo apt install mysql-server
インストーラーは、MySQLのrootパスワードを設定するように求めます。ここではパスワードを設定しないでください(空白のままにしてください)。次のセクションで設定します。
次に、新しいMySQL8認証について通知するメッセージが表示されます。デフォルトのMySQL8認証プラグインを選択する前に、それがアプリケーションでサポートされていることを確認してください。
インストールが完了すると、MySQLサービスが自動的に開始されます。次のように入力して確認できます。
sudo systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en
Active: active (running) since Fri 2019-07-26 13:23:25 PDT; 37s ago
...
MySQLの保護#
mysql_secure_installation
を実行します ルートパスワードを設定し、MySQLインストールのセキュリティを向上させるコマンド:
sudo mysql_secure_installation
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No:
VALIDATE PASSWORD PLUGIN
を設定するように求められます これは、MySQLユーザーのパスワードの強度をテストするために使用されます。パスワード検証ポリシーには、低、中、強力の3つのレベルがあります。 ENTER
を押します パスワード検証プラグインを設定したくない場合。
Please set the password for root here.
New password:
Re-enter new password:
次のプロンプトで、MySQLrootユーザーのパスワードを設定するように求められます。
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
rootパスワードを設定すると、スクリプトは匿名ユーザーを削除し、rootユーザーのローカルマシンへのアクセスを制限し、テストデータベースを削除するように要求します。すべての質問に「Y」(はい)と答える必要があります。
MySQLサーバーへの接続#
ターミナルを介してMySQLと対話するには、mysql
を使用します MySQLサーバーパッケージの依存関係としてインストールされるクライアント。
rootユーザータイプとしてMySQLサーバーにログインするためにデフォルトの認証方法を選択した場合:
sudo mysql
それ以外の場合、ログインに従来の認証方法を選択した場合は、次のように入力します。
mysql -u root -p
mysql_secure_installation
のときに、以前に設定したルートパスワードを入力するように求められます。 スクリプトが実行されました。パスワードを入力すると、以下に示すようにMySQLシェルが表示されます。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.17 MySQL Community Server - GPL
...