Ubuntu19.04にMySQLの環境をつくる【備忘録】

Ubuntu19.04でのMySQLの環境構築の方法をまとめておきます。

バリデーションの回避方法以外は、ほとんど以前書いたこちらの記事と同じ内容です。

Ubuntu18.04にMySQLの環境をつくる【備忘録】

もくじ

  1. 使用環境
  2. MySQLのインストール方法
  3. MySQLにログイン
  4. ユーザーを作成する
  5. バリデーションの回避
  6. 参考

使用環境

今回環境構築を行った環境は、

・Ubuntu19.04
・MySQL Ver 14.14 Distrib 5.7.24, for Linux

です。

MySQLのインストール方法

インストールはとても簡単にできました。

下のコマンド一発で必要なパッケージのインストールは完了しました。

  $ sudo apt-get install mysql-server mysql-client

インストールしているパッケージについて、ざっくりと。

mysql-server:MySQLサーバーに接続し、”mysql”コマンドラインプログラムを提供するパッケージ。
mysql-client:複数のデータベースをホストし、それらのデータベースでクエリを処理できるMySQLサーバを実行するパッケージ。

参考サイト

  $ mysql --version

というコマンドで、 “mysql Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using EditLine wrapper”のように表示されれば成功です。

MySQLにログイン

インストールが完了したら、次のコマンドでルートユーザーの設定を行います。

  $ sudo mysql_secure_installation

サイトによっては、ここで設定したパスワードでMySQLにログインすると書かれていたため混乱しましたが、Ubuntu18.04からはパスワード入力はいらなくなったよう。
設定ののち、

  $ sudo mysql -u root

でログインが可能です。

ユーザーを作成する

以前はMySQLにログインし、CREATE USERをした際に、パスワードのバリデーションでつまづきました。

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

こんなエラーが出ました。

MySQL5.7では、VALIDATE PASSWORD プラグインがインストールされるようになったため、パスワード設定がかなり厳しくなっているようです。

『MEDIUM ポリシーは、パスワードが最低 1 つの数値文字を含み、1 つの小文字および大文字を含み、1 つの特殊文字 (英数字以外) を含む必要があるという条件を追加します。』

という基準に満たないパスワードは、問答無用で弾かれます。

普通に複雑なパスワードを設定してもいいのですが、今回はローカルでしか使わないため、このプラグインには消えてもらうことにしました。

参考にしたのはこちら。
MySQL5.7のvalidate_passwordとかいうクソ機能殺す

まずはこのコマンドで、バリデーションを確認します。

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 6     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

では、消えてもらいましょう。

mysql> uninstall plugin validate_password;
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW VARIABLES LIKE 'validate_password%';
Empty set (0.01 sec)

これで無事に、CREATE USERができました。

バリデーションの回避

前回は上に書いてあるようにプラグインを削除してパスワードのバリデーションを回避しました。

実はこのバリデーション、インストール時の設定で回避することもできます。

インストール直後に表示される画面を見てみましょう。

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:

ここでYesと答えると、バリデーションのプラグインが有効になってしまいます。
ローカルで遊ぶだけなら不要なので、Noと答えてやりましょう。

これで面倒なプラグイン削除をしなくても、パスワードのバリデーションを無効にすることができました。

参考

・WEB
【Ubuntu 18.04 LTS Server】MySQLサーバを動かす
【Python入門】MySQLを使ってみよう
MySQL5.7のvalidate_passwordとかいうクソ機能殺す