業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」

Ubuntu Server 18.04でサーバー構築 MySQLインストール

スポンサーリンク
スポンサーリンク

MySQLインストール

1.必要なパッケージをインストールする

# apt update

# apt install mysql-server

2.MySQLサーバのセキュリティ設定を行う
MySQLサーバのセキュリティ関連の設定を行うためにmysql_secure_installtionというツールが用意されているのでこれを実行します。
実行すると、質問形式でいくつかのセキュリティ設定がはじまります。

# mysql_secure_installation

以下のようにパスワードバリデーション用のプラグインを使用するか確認されます。パスワードバリデーションというのは、MySQL用のユーザのパスワード強度をチェックし、十分セキュアなパスワードのみ受け付けるよう制限をかけることができます。例えば、最低何文字以上で必ず記号と数値を1文字以上含むなどです。この条件について次の質問で設定できます。
良ければyを入力してEnterを押します

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN 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 plugin?

 Press y|Y for Yes, any other key for No:y

上記の質問でyにした場合は続いてパスワードバリデーションのレベルを聞かれます。LOW、MEDIUM、STRONGの3つのレベルがあり、ここではMEDIUMを選択するため1を入力してEnterを押します

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:1

各レベルの内容は以下のようになっています。

 LOW          最低8文字以上

MEDIUM      最低8文字以上で数値、大文字小文字、特殊記号を必ず含む

STRONG    最低8文字以上で数値、大文字小文字、特殊記号を必ず含み、さらに4文字以上の文字列は辞書ファイルに登録されている単語に一致してはならないという制限あり

続いて、実際にレベルを満たすパスワードを2回入力します。これはrootユーザ用のパスワードです。

Please set the password for root here.

New password:<password>

Re-enter new password:<password>

パスワードを2回入力すると、0〜100のスコアが入力したパスワードに対して付けられて、これで良いか確認されます。セキュリティレベルが高いほど高いスコアになります。

OKな場合はyを入力してEnterを押します

Estimated strength of the password: 50

Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :y

今後MySQL用のユーザを作成する際に設定するパスワードは、ここで設定したセキュリティレベルを満たす必要がありますので注意してください

続いてMySQLがデフォルトで設定するテスト用の匿名ユーザを削除するか確認されます。良ければyを入力してEnterを押します

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

リモートからのrootログインを禁止するか確認されます。ここではyと入力してEnterを押します

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

通常MySQLがデフォルトで作成する「test」というどのユーザもアクセス可能なデータベースを削除するかの確認です。yと入力してEnterを押します

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

これまで行った設定を反映させるためにリロードして良いかの確認です。yと入力してEnterを押します

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

最後にここまでで設定した内容が表示され、以下のようにAll done!と表示されればセキュリティ設定は完了です

 (…以上省略…)

– 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!

3.MySQLにパスワードでログインできるように設定変更する

上記の設定でパスワードを設定しましたが、これはこのままでは使用されません。MySQL 5.7以降では、MySQLのrootユーザはデフォルトではパスワードによるログインができないようになっています。パスワードの代わりに、システムのrootユーザ(ここではOSがUbuntuなのでUbuntuのrootユーザ)情報でログインする必要があります。すなわち、sudoでMySQLのrootユーザとしてもMySQLにログインできます。
これはMySQL 5.7以降でauth_socketというプラグインが使用されているためです。もし、従来と同様にMySQLのrootユーザ用にパスワードを設定し、そのパスワードでMySQLにログインしたい場合はauth_socketの代わりにmysql_native_passwordというプラグインを使用するよう変更する必要があります。

$ su –

パスワード :

# mysql

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

下のように表示されrootユーザのpluginという部分がauth_socketになっていることが確認できます

| user                    | authentication_string                                                | plugin                         | host         |

+——————  +—————————————                       —-+———————–     +———–+

| root                    |                                                                                 | auth_socket                 | localhost |

| mysql.session      | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |

| mysql.sys            | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |

| debian-sys-maint | *5F6EC674A843A2EDC44C4B6BCBD832ADC88AF8BB   | mysql_native_password | localhost |

+——————+—————————————-             —+———————–+———+

これを従来のパスワード認証に変更したい場合は以下のコマンドを実行します。yourpasswordは実際に使用したいパスワードを入力してください

mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘<yourpassword>’;

反映させます

mysql> FLUSH PRIVILEGES;

 

今後MySQLにrootユーザでログインしたい場合は、以下のコマンド

# mysql -u root -p

パスワード : <yourpassword>

error:Content is protected !!
タイトルとURLをコピーしました