Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

MySQL 5.7の罠があなたを狙っている

112.215 visualizaciones

Publicado el

2015/08/22 YAPC::Asia Tokyo 2015 Lightning Talk
2016/01/13 update about default_password_lifetime will be 0

Publicado en: Tecnología
  • Sé el primero en comentar

MySQL 5.7の罠があなたを狙っている

  1. 1. MySQL 5.7の罠が あなたを狙っている Traps of MySQL 5.7 are aiming you 2015/08/22 yoku0825 YAPC::Asia 2015
  2. 2. This slide was updated at 2016/01/13!! 1/74
  3. 3. Chiba.pmの ⽅から来まし た 2/74
  4. 4. Chiba.pm の “m” は 3/74
  5. 5. MySQL の”M” :) 4/74
  6. 6. ※諸説あ ります 5/74
  7. 7. \こんにちは/ yoku0825@とある企業のDBA オラクれない- ポスグれない- マイエスキューエる- 家に帰ると 妻の夫- せがれの⽗- ムスメの⽗- Twitter: @yoku0825 Blog: ⽇々の覚書 MyNA ML: ⽇本MySQLユーザ会 6/74
  8. 8. MySQL 5.7について 2013年4⽉に5.7.1-m11(Development Milestone Release, ベータ版) 2015年8⽉に5.7.8-rc2(Realease Candidate, リリース候 補版) 2015/08/22現在、GA(General Available, ⼀般公開版)は まだ 2015/10/21 MySQL 5.7.9 GA Released!! 7/74
  9. 9. 本編に⼊ る前に 8/74
  10. 10. みなさんに呪 いをかけます 9/74
  11. 11. 知らないと致命 傷、でも知ってれ ば予防できる(は ず) 10/74
  12. 12. このトークを 聞いた⼈は 11/74
  13. 13. このトークを 聞いていない ⼈に 12/74
  14. 14. MySQL 5.7の罠 をひとつでも伝え てあげてください 13/74
  15. 15. 伝えない と︖ 14/74
  16. 16.   https://vicky2183.wordpress.com/2010/05/14/ postgresql-vs-mysql/ 15/74
  17. 17. 本編 16/74
  18. 18. 余計なお世話 なパラメータ ー多い 17/74
  19. 19. default̲password̲lifetime は 5.7.11からデフォルト0 にな りました 2016/01/13 updated 18/74
  20. 20. default̲password̲lifetime= 360 19/74
  21. 21. パスワード変更か ら *360⽇* でア カウントがロック される 20/74
  22. 22. アップグレ ードから 21/74
  23. 23. 360⽇後に 襲ってくる 22/74
  24. 24. _⼈⼈⼈⼈⼈⼈_ > 突然の死 <  ̄Y^Y^Y^Y^ ̄ 23/74
  25. 25. log̲timestamps= UTC 24/74
  26. 26. エラーログ, スロ ーログ, ジェネラ ルログ全部 UTC 25/74
  27. 27. show̲compatibility̲56= OFF 26/74
  28. 28. SHOW STATUS SHOW VARIABLES 27/74
  29. 29. *performance̲schema* のSELECT権限が必要になる 28/74
  30. 30. performance̲schema を *OFFにすると SHOW VARIABLESで きない* 29/74
  31. 31. レプリケーションスレーブに注意 (FIXED by 5.7.9) REPLICATION SLAVE権限の *他に* SELECT ON performance̲schema.* が必要 mysql> show slave statusG *************************** 1. row *************************** .. Last_IO_Errno: 1142 Last_IO_Error: The slave I/O thread stops becaus e a fatal error is encountered when it try to get the value of SE RVER_ID variable from master. Error: SELECT command denied to use r 'replicator'@'172.17.0.13' for table 'global_variables' .. 30/74
  32. 32. binlog̲format= ROW 31/74
  33. 33. 1ステートメントで 100万⾏DELETE するバッチがあっ たとするじゃろ︖ 32/74
  34. 34. 100万⾏の削除前 のイメージが全て バイナリーログに あがががが 33/74
  35. 35. binlogへの書き込 みはDisk Fullで エラーになってく れない 34/74
  36. 36. sql̲mode mysql56> SELECT @@sql_modeG *************************** 1. row *************************** @@sql_mode: NO_ENGINE_SUBSTITUTION 1 row in set (0.00 sec) mysql57> SELECT @@sql_modeG *************************** 1. row *************************** @@sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE _USER,NO_ENGINE_SUBSTITUTION 1 row in set (0.00 sec) 35/74
  37. 37. 16桁ハッシュ の古いパスワー ド形式の廃⽌ 36/74
  38. 38. もう残ってま せんよね︖ 10 年前 ですよ 37/74
  39. 39. log̲error̲verbosity とlog̲warnings 38/74
  40. 40. 同じ変数を2つ のパラメータ ーがいじる 39/74
  41. 41. しかも 値がズレてる (log̲warnings + 1 = log̲error̲verbosity) 40/74
  42. 42. 混在していた場 合、通常のオプシ ョンと同じく 後勝 ち で設定される。 41/74
  43. 43. 古いlog̲warningsの記述はmy.cnfから取り除いておく べき value notes warnings errors log-warnings = 0 log-error- verbosity = 1 No No Yes log-warnings = 1 log-error- verbosity = 2 No Yes Yes log-warnings >= 2 log-error- verbosity >= 3 Yes Yes Yes 42/74
  44. 44. internal̲tmp̲disk̲storage̲engine= InnoDB 43/74
  45. 45. テンポラリー テーブルは排 他ロック不要 44/74
  46. 46. ロールバックはす るけどクラッシュ リカバリーは不要 45/74
  47. 47. テンポラリーテー ブル専⽤の ibtmp1 ファイル を作成する 46/74
  48. 48. ⼀度容量を確 保してしまう と 47/74
  49. 49. mysqldを再起 動するまで 領域 は解放されない 48/74
  50. 50. binlogへの書 き込みは (略) 49/74
  51. 51. innodb̲buffer̲pool̲load̲at̲startup= ON 50/74
  52. 52. 起動時のバッ ファプール暖 気ON 51/74
  53. 53. mysqld起動直後 に 全⼒で .ibdファ イルの読み込みが ⾛る 52/74
  54. 54. この処理が終わるま での間にトラフィッ クが突っ込んでくる とかなり悲惨 53/74
  55. 55. secure̲file̲priv= / var/lib/mysq-files (rpm, debのみ) 54/74
  56. 56. LOAD DATA INFILEがこのデ ィレクトリ外から できなくなる 55/74
  57. 57. innodb̲buffer̲pool̲size のオンライン変更をサポー ト︕︕1 56/74
  58. 58. バッファプールを ⼤きくするときは 更新がブロックさ れる 57/74
  59. 59. 本当は断続的 に SELECTも ブロックしてる 58/74
  60. 60. オンラインっ て何だっけ 59/74
  61. 61. validate̲password プラグインがデフォル トで有効 (rpm) 60/74
  62. 62. デフォルトでは 8 ⽂字以上、英⼤⽂ 字⼩⽂字数字記号 の4種類 が必須 61/74
  63. 63. パスワードを変更す るまでプラグインの 無効化どころか条件 の確認もできない 62/74
  64. 64. そんな都合の良い ⽂字列ぱっと思い つかないよ︕ 63/74
  65. 65. Do̲you̲love̲MySQL57? でこの条件を満たすのでご活 ⽤ください 64/74
  66. 66. 5.6の暗黙のデフォルトとなるべく同じにするためのタレ [mysqld] sql_mode= NO_ENGINE_SUBSTITUTION secure_file_priv= "" binlog_format= STATEMENT innodb_buffer_pool_dump_at_shutdown= 0 innodb_buffer_pool_load_at_startup= 0 innodb_buffer_pool_dump_pct= 100 loose-default_password_lifetime= 0 ### Remove log_warnings!! loose-log_error_verbosity= 3 loose-log_timestamps= SYSTEM loose-internal_tmp_disk_storage_engine= MyISAM loose-show_compatibility_56= ON 65/74
  67. 67. 秘伝のタレ以外 16桁ハッシュ おとなしく41桁ハッシュに更新を mysql.user.password スクリプトはバージョン判定を validate̲passwordプラグイン Do_you_love_MySQL57? で乗り切ってUNINSTALL PLUGIN validate_password 66/74
  68. 68. 全部知っ てた⼈︖ 67/74
  69. 69. ⽇本語の5.7の 情報はそう多 くない 68/74
  70. 70. こんな状態で 最初のMySQL が5.7だったら 69/74
  71. 71. ⼼が⿊くなっ ちゃう ©Yappo 70/74
  72. 72. このトークを 聞いた⼈は 71/74
  73. 73. このトークを 聞いていない ⼈に 72/74
  74. 74. MySQL 5.7の罠 をひとつでも伝え てあげてください 73/74
  75. 75. よろしくおねがいします :) https://vicky2183.wordpress.com/2010/05/14/ postgresql-vs-mysql/ 74/74

×