MySQL5.7

データベースシステムです。
データの管理や運用操作に利用します。

ApachePHPなどと組み合わせて使用するWEBアプリケーションが多く、一時期はLinuxを主軸としたシステムとしてLAMP(ランプ)システムなどとも呼ばれていました。まぁ、ここで使用しているのはFreeBSDですが・・・。

コマンドラインからも各種データを操作する事は可能ですが、そうした操作はphpMyAdminに任せてしまったほうが楽だと思うので、ここでは最低限の設定しかしません。

5.6以前のバージョンは、以前の説明で問題無いと思いますが、5.7ではパスワード周りの設定が複数追加されたようで、初期設定の段階が異様なほど面倒になりました。5.6以前のバージョンに関しては以前投稿したMySQLを参考にしてもらって、此処ではMySQL5.7の設定をします。

 

☆ インストール

cd /usr/ports/databases/mysql57-server/
make config-recursive
make install clean && rehash

 

☆ rc.confの編集

vi /etc/rc.conf
mysql_enable="YES"

 

☆ MySQLの起動

/usr/local/etc/rc.d/mysql-server start

 

☆ 設定の変更

vi /usr/local/etc/mysql/my.cnf

それ以前とは違い、5.7ではパスワードの有効期限が設定されているようなので、無制限に変更する設定を『[mysqld]』の設定の末尾にでも追記しておくと良いかもしれない。

default_password_lifetime       = 0

 

☆ パスワードの扱い

v5.6以前とv5.7ではパスワードの扱いが全く違ってくる。デフォルトでは半角の英大文字・英小文字・特殊文字を最低でも1つ以上使い8文字以上で設定する。また、v5.7では初めからパスワードが設定されているので、今までのようなパスワード無しでログインするような事は出来ません。初期のパスワードはMySQL起動後に『~/.mysql_secret』の中に記載されます。初期パスワードをそのまま使うならともかく、自分で設定しようと考えた場合は、初期設定されたパスワードは一切使わないので、見ても見なくても良いですw

パスワードは、設定すれば今まで通りのものも使用できるので、今回はそちらの設定をします。

mysql_secure_installation
mysql_secure_installation: [ERROR] unknown variable 'prompt=\u@\h [\d]>\_'

Securing the MySQL server deployment.

Connecting to MySQL server using password in '/root/.mysql_secret'

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』で先に進みます。

 

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:

パスワードの強度を設定します。それ以前のバージョンと同じパスワードにしたい場合は『LOW』を選択することになるので、此処は『0』で先に進みます。

 

Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) :

デフォルトのパスワードからオリジナルのパスワードに変更するので、此処は『y』で先に進みます。

 

New password:

Re-enter new password:

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

新しいパスワードを設定した後、パスワードの強度を数値で警告している状況です。デフォルトのパスワードが100だったのに対し、私が設定したパスワードは50なので、数値としては低いですねw

このパスワードで構わないなら『y』で先に進みます。

 

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』で先に進みます。

 

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

リモートからのrootアクセスを禁止するかの設定。

内容としてどの程度の事を言っているのか分からないので、此処は『n』で先に進みます。
(LAN内ではあるがリモート操作なので)

 

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

デフォルトで設定されている『test』と言うデータベースを削除するかの問。

要らないので『y』で先に進みます。

 

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!

面倒なことに、これで設定が終わったわけではなかったりします

 

☆ 追加の設定

どうも上の設定だけでは設定が反映されないようなので、追加で設定します。と言うか、下の設定内容を見てもらえば、上の設定って何の為の設定なのか良く分からなくなると思います。しかし、上の設定をせずに此処から設定しようとしても、設定できないので仕方がないです。

上で設定したパスワードでログインします。

mysql -u root -p

パスワードを入力した後『root@localhost [(none)]>』と言う感じに表示が変われば成功。

 

set global validate_password_policy=LOW;

『LOW』の所は『0』でも問題ないようです。

 

set password=password('設定するパスワード');

ログインに使用したパスワードを設定します。

 

これで、パスワードに関する設定は一通り終わりました。

私の場合、他の操作はphpMyAdminなどからする事になるので、これでMySQLの設定は終了となります。

exit

 

 

役に立ちましたか?
  • 役に立った (0)
  • 少しだけ (0)
  • これじゃない! (0)