[ MySQL](https://www.mysql.com/)は、最も人気のあるオープンソースのリレーショナルデータベース管理システムです。高速で使いやすく、拡張も簡単で、人気のある「LAMP」と「LEMP」の一部です。
このガイドでは、Ubuntu 20.04に[MySQL](https://cloud.tencent.com/product/cdb?from=10680)をインストールして保護する方法について説明します。
sudoユーザーとしてログインしていることを確認してください
この記事を書いている時点で、Ubuntuソースリポジトリの最新のMySQLバージョン番号はMySQL8.0です。これをインストールするには、次のコマンドを実行します。
sudo apt update
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 Tue 2020-04-2820:59:52 UTC; 10min ago
Main PID:8617(mysqld)
Status:"Server is operational"...
MySQLインストールファイルには、「mysql_secure_installation」というスクリプトが付属しており、データベースサーバーのセキュリティを簡単に向上させることができます。
パラメータなしでこのスクリプトを実行します。
sudo mysql_secure_installation
MySQLユーザーパスワードの強度をテストし、セキュリティを向上させるために使用される VALIDATE PASSWORDPLUGIN
を構成するように求められます。
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: y
パスワード検証戦略には、低レベル、中レベル、高レベルの3つのレベルがあります。確認パスワードプラグインを設定する場合は、「y」またはその他のボタンを押して次の手順に進みます。
There are three levels of password validation policy:
LOW Length >=8
MEDIUM Length >=8, numeric, mixed case, and special characters
STRONG Length >=8, numeric, mixed case, special characters and dictionary file
Please enter 0= LOW,1= MEDIUM and 2= STRONG:2
次回プロンプトが表示されたら、MySQLルートユーザーのパスワードを設定するように求められます。
Please set the password for root here.
New password:
Re-enter newpassword:
パスワード検証プラグインを設定している場合、このスクリプトは新しいパスワードの強度を表示します。 y
を入力して、パスワードを確認します。
Estimated strength of the password:50
Do you wish to continuewith the password provided?(Press y|Y for Yes, any other key for No): y
次に、匿名ユーザーを削除し、ローカルマシンへのルートユーザーアクセスを制限し、テストデータベースを削除して、権限テーブルを再読み込みするように求められます。すべての質問に「y」と答える必要があります。
MySQlクライアントツールを使用して、コマンドラインでMySQLサーバーと対話します。このMySQLクライアントは、MySQLサーバーインストールパッケージの依存パッケージとしてインストールされています。
MySQL 8.0では、rootユーザーはデフォルトで auth_socket
プラグインによって許可されています。
auth_socket
プラグインは、Unixソケットファイルを介して localhost
に接続しているすべてのユーザーを認証します。これは、パスワードを指定してrootとして認証できないことを意味します。
rootユーザーとしてMySQLサーバーにログインし、次のように入力します。
sudo mysql
次のようにMySQLシェルが表示されます。
Welcome to the MySQL monitor. Commands end with; or \g.
Your MySQL connection id is 12
Server version:8.0.19-0ubuntu5(Ubuntu)Copyright(c)2000,2020, 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.
mysql>
rootとしてMySQLサーバーにログインし、phpMyAdminなどの他のプログラムを使用する場合は、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';
Ubuntu20.04にMySQLをインストールする方法を説明しました。データベースがオンラインで実行されているので、次のステップは[MySQLユーザーとデータベースを管理する方法](https://linuxize.com/post/how-to-manage-mysql-databases-and-users-from-the-command-line/)を学ぶことです。
Recommended Posts