« 2015年5月 | トップページ | 2015年7月 »

2015年6月

2015/06/10

MySQL5.6.25と5.7.7を比較。

今日聞いてきた内容が気になったので、手持ちの環境で確認。

Grants

rootユーザです。

show grants;

5.6.25

+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*1CE3106356E17EAE54E6BC6225B416DDE0EC656F' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION                                                                           |
+----------------------------------------------------------------------------------------------------------------------------------------+

5.7.7

+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+

default_password_lifetime

show variables like 'default_password_lifetime';

5.7.7

+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| default_password_lifetime | 360   |
+---------------------------+-------+

※5.6には存在しません。

sql_mode

select @@sql_mode;

5.6.25

+------------------------+
| @@sql_mode             |
+------------------------+
| NO_ENGINE_SUBSTITUTION |
+------------------------+

5.7.7

+--------------------------------------------+
| @@sql_mode                                 |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+

log_warnings

show variables like 'log_warnings';

5.6.25

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 1     |
+---------------+-------+

5.7.7

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 2     |
+---------------+-------+

初期値の変更もさることながら、log_error_verbosityへの影響もあります。

secure_file_priv

show variables like 'secure_file_priv';

5.6.25

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv |       |
+------------------+-------+

※空の場合は、mysqld実行ユーザのパーミッションで許可されたファイルは全て触れます。

5.7.7

+------------------+-----------------------+
| Variable_name    | Value                 |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+

※空の場合は、外部ファイルを一切触れません。

| | コメント (0) | トラックバック (0)

db tech showcase 1日目

【今から備えるMySQL最新バージョン5.7】


  • mysql_old_passwordプラグインの消失。
    • 5.6ではアップグレード時のみ16桁ハッシュのユーザも可能。新規作成は不可。

  • default_password_lifetimeがデフォルトで360日に設定されている。
    • 0を指定して無効化しよう。


  • SET PASSWORD構文が変更になった。

  • SHOW GRANTSでパスワードが出力されなくなった。

    • SHOW GRANTSの結果を用いたユーザ移行はできない。




  • sql_modeのデフォルトが変更になった。

    • ONLY_FULL_GROUP_BYがデフォルト動作になる予定。

      • MySQLはsql_modeによってはこんなアホみたいなクエリを通すんです…
        当然、nameの値は保証されません。

        SELECT COUNT(id)
        ,name FROM user
        WHERE name LIKE 'A%';

        +-----------+------+
        | count(id) | name |
        +-----------+------+
        | 50000 | A0 |
        +-----------+------+

        5.7では新たな関数、ANY_VALUE()が追加されたが、余計なお世話。

        SELECT COUNT(id)
        ,ANY_VALUE(name) FROM user
        WHERE name LIKE 'A%';





  • performance_schema.events_statements_historyでアプリが握りつぶしたエラーも見られる。



  • 古いlog_warningsは取り除いておくべき。



  • InnoDBではテンポラリテーブルをautoextendedにしないこと。

    • mysqldの再起動まで解放されない。




  • オプションによる動作/初期値の変更が初心者殺しすぎる。



  • インストール時のテンポラリパスワードが標準エラー出力。



  • secure_file_privの動作が変更。

    • rpmなどで入れるとデフォルト値が/var/lib/mysql-files/

    • nullにするとファイル読込不可。




  • コマンドラインオプションのパラメータ名補完が無くなった



  • スローログ関連の閾値が変わるかも。



  • 気になるバグはAffects Me!


| | コメント (0) | トラックバック (0)

« 2015年5月 | トップページ | 2015年7月 »