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

Ubuntuデスクトップ上でのMySQLの環境構築に手間取ったので、備忘録としてまとめておきます。

もくじ

  1. 使用環境
  2. MySQLのインストール方法
  3. MySQLにログイン
  4. ユーザーを作成する
  5. まとめ
  6. 参考

使用環境

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

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

です。
今回は、MySQLをインストールして、適当なユーザーを作成するところまで行いました。

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ができました。

まとめ

まだまだDBは触ったばかりのド素人ですが、これでようやくローカルでDBをいじれる環境ができました。
本格的なWEBサービスをつくる基盤が整っていくように感じます。

参考

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