no-image

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とかいうクソ機能殺す