SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
MySQL5.6
              プロダクション投入
                2013/04/17
                Kenji Matsuo
                               1

13年4月17日水曜日
自己紹介

              • Kenji Matsuo
              • @matsukena
              • FreakOutでインフラエンジニアをやっ
               てます。

              • 福岡から東京にきてまだ4ヶ月です。
                                        2

13年4月17日水曜日
アジェンダ
              • セットアップ
              • どうやって切り替えを行った?
              • はまったポイント
              • 今後やりたい事
                                 3

13年4月17日水曜日
セットアップ


                       4

13年4月17日水曜日
パッケージ
              • MySQL-shared-
                compat-5.6.10-1.el6.x86_64

              • MySQL-server-5.6.10-1.el6.x86_64
              • MySQL-devel-5.6.10-1.el6.x86_64
              • MySQL-client-5.6.10-1.el6.x86_64
                                                   5

13年4月17日水曜日
素直に本家から
              rpmを持ってきて
                インストール

                          6

13年4月17日水曜日
class mysql {
          case $::operatingsystemrelease {
            /^5/: {
              $release = "rhel5"
                                        package {
            }
                                           [
            /^6/: {
                                           "MySQL-client",
              $release = "el6"
                                           "MySQL-devel",
            }
                                           "MySQL-shared-compat",
         }
                                           ]:
      }
                                           ensure => "5.6.10-1.$release",
                                        }
                                       package {
                                           "MySQL-server":
                                              ensure => "5.6.10-1.$release",
                                              require => [
                                              File["/var/lib/mysql/ibdata"],
                                              File["/var/lib/mysql/iblog"],
                                              ],
                                        }

                                                                               7

13年4月17日水曜日
my.cnf


                       8

13年4月17日水曜日
• performance_schema = off
              • table_cache → table_open_cache
              • explicit_defaults_for_timestamp
              • innodb_additional_mem_pool_sizeを
               削除



                                                   9

13年4月17日水曜日
どうやって
              切り替えを行った?


                          10

13年4月17日水曜日
変更前




                    11

13年4月17日水曜日
変更途中




                     12

13年4月17日水曜日
変更後




                    13

13年4月17日水曜日
はまったポイント


                         14

13年4月17日水曜日
mysqlデータベース内のInnoDBで
                作成されたtableが壊れる。




                                     15

13年4月17日水曜日
• ibdata1やib_logfileを削除して、
                再起動するといきなり出た。


              • エラーメッセージ
      [Warning] InnoDB: Cannot open table mysql/slave_master_info from the internal data
     dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/
     doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
      [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be
     opened.
      [ERROR] Error in checking mysql.slave_master_info repository info type of TABLE.
      [ERROR] Error creating master info: Error checking repositories.
      [ERROR] Failed to create or recover replication info repository.



                                                                                                16

13年4月17日水曜日
まず、該当のテーブルを消す!
     use mysql;
     DROP TABLE        IF   EXISTS   `innodb_index_stats`;
     DROP TABLE        IF   EXISTS   `innodb_table_stats`;
     DROP TABLE        IF   EXISTS   `slave_master_info`;
     DROP TABLE        IF   EXISTS   `slave_relay_log_info`;
     DROP TABLE        IF   EXISTS   `slave_worker_info`;



          でも、.ibdは残っているのでこれも消す!
     rm   -rf   /var/lib/mysql/mysql/innodb_index_stats.ibd
     rm   -rf   /var/lib/mysql/mysql/innodb_table_stats.ibd
     rm   -rf   /var/lib/mysql/mysql/slave_master_info.ibd
     rm   -rf   /var/lib/mysql/mysql/slave_relay_log_info.ibd
     rm   -rf   /var/lib/mysql/mysql/slave_worker_info.ibd



                                                                17

13年4月17日水曜日
mysql_system_tablesから再作成!!

              use mysql;
              source /usr/share/mysql/mysql_system_tables.sql;




                                                                 18

13年4月17日水曜日
Testが通らなくなる。


                             19

13年4月17日水曜日
詳細は、
              oranieさんのblogに
               書いてあります。

                               20

13年4月17日水曜日
Test::mysqlでmysql_install_dbして
               いるところで、エラーになった。



              エラーメッセージがなにもでない。



                                               21

13年4月17日水曜日
427 # ----------------------------------------------------------------------
              428 # This will be the default config file
              429 # ----------------------------------------------------------------------
              430
              431 $config_file= "$basedir/my.cnf";
              432
              433 my $cfg_template= find_in_basedir($opt,"file","my-default.cnf",
              434                                 "share","share/mysql","support-files");
              435 -e $cfg_template or cannot_find_file("my-default.cnf");
              436
              437 $copy_cfg_file= $config_file;
              438 if (-e $copy_cfg_file)
              439 {
              440 $copy_cfg_file = s/my.cnf/my-new.cnf/;
              441 # Too early to print warning here, the user may not notice
              442 }
              443 open (TEMPL, $cfg_template) or error("Could not open config template");
              444 open (CFG, "> $copy_cfg_file") or error("Could not open config file");
              445 while (<TEMPL>)
              446 {
              447 # Remove lines beginning with # *** which are template comments
              448 print CFG $_ unless /^# ***/;
              449 }
              450 close CFG;
              451 close TEMPL;
                                                                                             22

13年4月17日水曜日
Testで
              いままでとおってた
                 insertが
               エラーになる。
                           23

13年4月17日水曜日
デフォルトのsql_modeの設定が5.5
         までは空だったのに5.6からは指定さ
         れていた。

         /usr/my.cnfに明示的に書かれてい
         た。


                                 24

13年4月17日水曜日
5.5系
     mysql> SELECT @@GLOBAL.sql_mode;
     +-------------------+
     ¦ @@GLOBAL.sql_mode ¦
     +-------------------+
     ¦                 ¦
     +-------------------+
     1 row in set (0.00 sec)


         5.6系
     mysql> SELECT @@GLOBAL.sql_mode;
     +--------------------------------------------+
     ¦ @@GLOBAL.sql_mode                            ¦
     +--------------------------------------------+
     ¦ STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION ¦
     +--------------------------------------------+
     1 row in set (0.00 sec)


                                                        25

13年4月17日水曜日
GTIDがOnだと、
              レプリケーションが
                  組めない

                            26

13年4月17日水曜日
• 環境 mysql5.5(Master) +
                mysql5.6(Slave)


              • エラーメッセージ
        root@localhost[(none)]> show slave statusG
        [...]
        Last_IO_Error: The slave IO thread stops because the master has GTID_MODE OFF
        and this server has GTID_MODE ON




                                                                                        27

13年4月17日水曜日
GTIDの設定
              log-bin
              log-slave-updates
              gtid-mode=ON
              enforce-gtid-consistency




         GTIDを使用するには、レプリケーションを組む
         サーバ全体でGTIDを有効にする必要がある。

                                         28

13年4月17日水曜日
GTIDの利用を断念
              root@localhost[(none)]> show global variables like '%gtid%';
              +--------------------------+----------------------------------------------+
              ¦ Variable_name                 ¦ Value                                       ¦
              +--------------------------+----------------------------------------------+
              ¦ enforce_gtid_consistency ¦ OFF                                                ¦
              ¦ gtid_executed                ¦ 9ee58062-864d-11e2-a94b-003048b3b452:1-64049
              ¦
              ¦ gtid_mode                   ¦ OFF                                         ¦
              ¦ gtid_owned                  ¦                                           ¦
              ¦ gtid_purged                 ¦                                           ¦
              +--------------------------+----------------------------------------------+
              5 rows in set (0.00 sec)




                                                                                                  29

13年4月17日水曜日
-p オプションを
         つけてるとwarningに


                         30

13年4月17日水曜日
• エラーメッセージ
     Warning: Using a password on the command line interface can be insecure.
     Welcome to the MySQL monitor. Commands end with ; or g.
     Your MySQL connection id is 476849
     Server version: 5.6.10-log MySQL Community Server (GPL)


     Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.


     Oracle is a registered trademark of Oracle Corporation and/or its
     affiliates. Other names may be trademarks of their respective
     owners.


     Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.


     root@localhost[(none)]>




                                                                                      31

13年4月17日水曜日
mysql_config_editorが
            便利


                          32

13年4月17日水曜日
• 暗号化されたパスワードが
                「.mylogin.cnf」に書かれるので、
                「.my.cnf」に平文のパスワード書かなく
                てもいいから安心。

              $ mysql_config_editor set --user=admin --password
              Enter password: <パスワード手入力>


              $ mysql_config_editor print --all
              [client]
              user = admin
              password = *****




                                                                 33

13年4月17日水曜日
セクションも指定できる。
      mysql_config_editor set --login-path=mysqldump --user=root --password
     Enter password: <パスワード手入力>


     $ mysql_config_editor print --all
     [client]
     user = admin
     password = *****
     [mysql]
     user = admin
     password = *****
     [mysqladmin]
     user = root
     password = *****




                                                                             34

13年4月17日水曜日
mysqldumpでエラー


                         35

13年4月17日水曜日
• mysql5.6 から mysql5.5のdump
               をとるときにerrorになる。


              • エラーメッセージ
                 mysqldump: Couldn't execute 'SELECT @@GTID_MODE':
                 Unknown system variable 'GTID_MODE' (1193)




                                                                     36

13年4月17日水曜日
--set-gtid-purgedをoffにすればいい


         あまり無いと思いますが、あえて5.5系とかの
         dumpをとる場合は、このオプションを付ける事
         でgtidを使用した環境からのダンプファイルに以
         下内容が出力されなくなります。


       SET @@GLOBAL.GTID_PURGED='71803be2-7816-11e2-8c99-5254003e1cec:1-665';




                                                                                37

13年4月17日水曜日
今後の予定


                      38

13年4月17日水曜日
• GTIDをON
              • MHAの導入


                          39

13年4月17日水曜日
ご清聴ありがとう
               ございました。


                         40

13年4月17日水曜日

Weitere ähnliche Inhalte

Was ist angesagt?

Devsの常識、DBAは非常識
Devsの常識、DBAは非常識Devsの常識、DBAは非常識
Devsの常識、DBAは非常識yoku0825
 
Add PLEASE clause to Oracle Database
Add PLEASE clause to Oracle DatabaseAdd PLEASE clause to Oracle Database
Add PLEASE clause to Oracle DatabaseNoriyoshi Shinoda
 
わたしを支える技術
わたしを支える技術わたしを支える技術
わたしを支える技術yoku0825
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!kwatch
 
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうMySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうyoku0825
 
[Alfresco]ドキュメントライブラリのUIカスタマイズ
[Alfresco]ドキュメントライブラリのUIカスタマイズ[Alfresco]ドキュメントライブラリのUIカスタマイズ
[Alfresco]ドキュメントライブラリのUIカスタマイズJun Terashita
 
Alfrescoのカスタムテーブルの使い方
Alfrescoのカスタムテーブルの使い方Alfrescoのカスタムテーブルの使い方
Alfrescoのカスタムテーブルの使い方Jun Terashita
 
Migr8.rb チュートリアル
Migr8.rb チュートリアルMigr8.rb チュートリアル
Migr8.rb チュートリアルkwatch
 
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2Mikiya Okuno
 
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQLPostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQLNoriyoshi Shinoda
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことyoku0825
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリングyoku0825
 
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyoyoyamasaki
 
MySQL Fabricでぼっこぼこにされたはなし
MySQL FabricでぼっこぼこにされたはなしMySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなしyoku0825
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015Mikiya Okuno
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?yoku0825
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介Shinya Sugiyama
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術yoku0825
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具yoku0825
 

Was ist angesagt? (20)

Devsの常識、DBAは非常識
Devsの常識、DBAは非常識Devsの常識、DBAは非常識
Devsの常識、DBAは非常識
 
Add PLEASE clause to Oracle Database
Add PLEASE clause to Oracle DatabaseAdd PLEASE clause to Oracle Database
Add PLEASE clause to Oracle Database
 
わたしを支える技術
わたしを支える技術わたしを支える技術
わたしを支える技術
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうMySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
[Alfresco]ドキュメントライブラリのUIカスタマイズ
[Alfresco]ドキュメントライブラリのUIカスタマイズ[Alfresco]ドキュメントライブラリのUIカスタマイズ
[Alfresco]ドキュメントライブラリのUIカスタマイズ
 
Alfrescoのカスタムテーブルの使い方
Alfrescoのカスタムテーブルの使い方Alfrescoのカスタムテーブルの使い方
Alfrescoのカスタムテーブルの使い方
 
Migr8.rb チュートリアル
Migr8.rb チュートリアルMigr8.rb チュートリアル
Migr8.rb チュートリアル
 
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
 
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQLPostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQL
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリング
 
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
 
MySQL Fabricでぼっこぼこにされたはなし
MySQL FabricでぼっこぼこにされたはなしMySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具
 

Andere mochten auch

Index shotgun on mysql5.6
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6yoku0825
 
SQLドリルの話(仮)
SQLドリルの話(仮)SQLドリルの話(仮)
SQLドリルの話(仮)Yuuki Tan-nai
 
マスタN対スレーブ1レプリケーションの作り方 ~あれから~
マスタN対スレーブ1レプリケーションの作り方 ~あれから~マスタN対スレーブ1レプリケーションの作り方 ~あれから~
マスタN対スレーブ1レプリケーションの作り方 ~あれから~do_aki
 
App::highlight - a simple grep-like highlighter app
App::highlight - a simple grep-like highlighter appApp::highlight - a simple grep-like highlighter app
App::highlight - a simple grep-like highlighter appAlex Balhatchet
 
Salesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱いSalesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱いSalesforce Developers Japan
 
AppSec And Microservices
AppSec And MicroservicesAppSec And Microservices
AppSec And MicroservicesSam Newman
 
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」Kentaro Yoshida
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemAvleen Vig
 
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasiaサンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasiaMasayuki Ishikawa
 
【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術Yoshinori Fujiwara
 
AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016Sam Newman
 
Lean Customer Development と顧客インタビュー (技術者/研究者発スタートアップのためのリーンスタートアップ)
Lean Customer Development と顧客インタビュー (技術者/研究者発スタートアップのためのリーンスタートアップ)Lean Customer Development と顧客インタビュー (技術者/研究者発スタートアップのためのリーンスタートアップ)
Lean Customer Development と顧客インタビュー (技術者/研究者発スタートアップのためのリーンスタートアップ)Takaaki Umada
 
人間と話す: Lean Customer Development (Lean Startup Update 2015)
人間と話す: Lean Customer Development (Lean Startup Update 2015)人間と話す: Lean Customer Development (Lean Startup Update 2015)
人間と話す: Lean Customer Development (Lean Startup Update 2015)Takaaki Umada
 
Launching a Rocketship Off Someone Else's Back
Launching a Rocketship Off Someone Else's BackLaunching a Rocketship Off Someone Else's Back
Launching a Rocketship Off Someone Else's Backjoshelman
 

Andere mochten auch (17)

O/R Mapper Stratumの話
O/R Mapper Stratumの話O/R Mapper Stratumの話
O/R Mapper Stratumの話
 
Index shotgun on mysql5.6
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6
 
SQLドリルの話(仮)
SQLドリルの話(仮)SQLドリルの話(仮)
SQLドリルの話(仮)
 
マスタN対スレーブ1レプリケーションの作り方 ~あれから~
マスタN対スレーブ1レプリケーションの作り方 ~あれから~マスタN対スレーブ1レプリケーションの作り方 ~あれから~
マスタN対スレーブ1レプリケーションの作り方 ~あれから~
 
App::highlight - a simple grep-like highlighter app
App::highlight - a simple grep-like highlighter appApp::highlight - a simple grep-like highlighter app
App::highlight - a simple grep-like highlighter app
 
mysql casual #4
mysql casual #4mysql casual #4
mysql casual #4
 
BlinkDB 紹介
BlinkDB 紹介BlinkDB 紹介
BlinkDB 紹介
 
Salesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱いSalesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱い
 
AppSec And Microservices
AppSec And MicroservicesAppSec And Microservices
AppSec And Microservices
 
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log system
 
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasiaサンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
 
【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術
 
AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016
 
Lean Customer Development と顧客インタビュー (技術者/研究者発スタートアップのためのリーンスタートアップ)
Lean Customer Development と顧客インタビュー (技術者/研究者発スタートアップのためのリーンスタートアップ)Lean Customer Development と顧客インタビュー (技術者/研究者発スタートアップのためのリーンスタートアップ)
Lean Customer Development と顧客インタビュー (技術者/研究者発スタートアップのためのリーンスタートアップ)
 
人間と話す: Lean Customer Development (Lean Startup Update 2015)
人間と話す: Lean Customer Development (Lean Startup Update 2015)人間と話す: Lean Customer Development (Lean Startup Update 2015)
人間と話す: Lean Customer Development (Lean Startup Update 2015)
 
Launching a Rocketship Off Someone Else's Back
Launching a Rocketship Off Someone Else's BackLaunching a Rocketship Off Someone Else's Back
Launching a Rocketship Off Someone Else's Back
 

Ähnlich wie Mysql casual talks vol4

MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2学 松崎
 
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話Takahiro Okumura
 
Jenkins plugin memo
Jenkins plugin memoJenkins plugin memo
Jenkins plugin memoKiyotaka Oku
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
Word press on conoha このべん #3
Word press on conoha このべん #3Word press on conoha このべん #3
Word press on conoha このべん #3Wataru OKAMOTO
 
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 TokyoYoshiyuki Asaba
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門Mikiya Okuno
 
Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例Hidetoshi Mori
 
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidTaisuke Oe
 
Hakyllで遊んでみた。
Hakyllで遊んでみた。Hakyllで遊んでみた。
Hakyllで遊んでみた。Tomohiko Himura
 
Img select hint_for_h
Img select hint_for_hImg select hint_for_h
Img select hint_for_hJun Chiba
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
System select hint_for_h2
System select hint_for_h2System select hint_for_h2
System select hint_for_h2Jun Chiba
 
CakePHP2でMySQL Replication
CakePHP2でMySQL ReplicationCakePHP2でMySQL Replication
CakePHP2でMySQL ReplicationYoshihiro Ohsuka
 
TripleOの光と闇
TripleOの光と闇TripleOの光と闇
TripleOの光と闇Manabu Ori
 

Ähnlich wie Mysql casual talks vol4 (20)

MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
 
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
 
What is chef
What is chefWhat is chef
What is chef
 
Jenkins plugin memo
Jenkins plugin memoJenkins plugin memo
Jenkins plugin memo
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
Word press on conoha このべん #3
Word press on conoha このべん #3Word press on conoha このべん #3
Word press on conoha このべん #3
 
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門
 
Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例
 
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in Android
 
Hakyllで遊んでみた。
Hakyllで遊んでみた。Hakyllで遊んでみた。
Hakyllで遊んでみた。
 
Img select hint_for_h
Img select hint_for_hImg select hint_for_h
Img select hint_for_h
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
Openstack chef-repo
Openstack chef-repoOpenstack chef-repo
Openstack chef-repo
 
System select hint_for_h2
System select hint_for_h2System select hint_for_h2
System select hint_for_h2
 
CakePHP2でMySQL Replication
CakePHP2でMySQL ReplicationCakePHP2でMySQL Replication
CakePHP2でMySQL Replication
 
TripleOの光と闇
TripleOの光と闇TripleOの光と闇
TripleOの光と闇
 

Kürzlich hochgeladen

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Kürzlich hochgeladen (9)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Mysql casual talks vol4

  • 1. MySQL5.6 プロダクション投入 2013/04/17 Kenji Matsuo 1 13年4月17日水曜日
  • 2. 自己紹介 • Kenji Matsuo • @matsukena • FreakOutでインフラエンジニアをやっ てます。 • 福岡から東京にきてまだ4ヶ月です。 2 13年4月17日水曜日
  • 3. アジェンダ • セットアップ • どうやって切り替えを行った? • はまったポイント • 今後やりたい事 3 13年4月17日水曜日
  • 4. セットアップ 4 13年4月17日水曜日
  • 5. パッケージ • MySQL-shared- compat-5.6.10-1.el6.x86_64 • MySQL-server-5.6.10-1.el6.x86_64 • MySQL-devel-5.6.10-1.el6.x86_64 • MySQL-client-5.6.10-1.el6.x86_64 5 13年4月17日水曜日
  • 6. 素直に本家から rpmを持ってきて インストール 6 13年4月17日水曜日
  • 7. class mysql { case $::operatingsystemrelease { /^5/: { $release = "rhel5" package { } [ /^6/: { "MySQL-client", $release = "el6" "MySQL-devel", } "MySQL-shared-compat", } ]: } ensure => "5.6.10-1.$release", }  package { "MySQL-server": ensure => "5.6.10-1.$release", require => [ File["/var/lib/mysql/ibdata"], File["/var/lib/mysql/iblog"], ], } 7 13年4月17日水曜日
  • 8. my.cnf 8 13年4月17日水曜日
  • 9. • performance_schema = off • table_cache → table_open_cache • explicit_defaults_for_timestamp • innodb_additional_mem_pool_sizeを 削除 9 13年4月17日水曜日
  • 10. どうやって 切り替えを行った? 10 13年4月17日水曜日
  • 11. 変更前 11 13年4月17日水曜日
  • 12. 変更途中 12 13年4月17日水曜日
  • 13. 変更後 13 13年4月17日水曜日
  • 14. はまったポイント 14 13年4月17日水曜日
  • 15. mysqlデータベース内のInnoDBで 作成されたtableが壊れる。 15 13年4月17日水曜日
  • 16. • ibdata1やib_logfileを削除して、 再起動するといきなり出た。 • エラーメッセージ [Warning] InnoDB: Cannot open table mysql/slave_master_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/ doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem. [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened. [ERROR] Error in checking mysql.slave_master_info repository info type of TABLE. [ERROR] Error creating master info: Error checking repositories. [ERROR] Failed to create or recover replication info repository. 16 13年4月17日水曜日
  • 17. まず、該当のテーブルを消す! use mysql; DROP TABLE IF EXISTS `innodb_index_stats`; DROP TABLE IF EXISTS `innodb_table_stats`; DROP TABLE IF EXISTS `slave_master_info`; DROP TABLE IF EXISTS `slave_relay_log_info`; DROP TABLE IF EXISTS `slave_worker_info`; でも、.ibdは残っているのでこれも消す! rm -rf /var/lib/mysql/mysql/innodb_index_stats.ibd rm -rf /var/lib/mysql/mysql/innodb_table_stats.ibd rm -rf /var/lib/mysql/mysql/slave_master_info.ibd rm -rf /var/lib/mysql/mysql/slave_relay_log_info.ibd rm -rf /var/lib/mysql/mysql/slave_worker_info.ibd 17 13年4月17日水曜日
  • 18. mysql_system_tablesから再作成!! use mysql; source /usr/share/mysql/mysql_system_tables.sql; 18 13年4月17日水曜日
  • 19. Testが通らなくなる。 19 13年4月17日水曜日
  • 20. 詳細は、 oranieさんのblogに 書いてあります。 20 13年4月17日水曜日
  • 21. Test::mysqlでmysql_install_dbして いるところで、エラーになった。 エラーメッセージがなにもでない。 21 13年4月17日水曜日
  • 22. 427 # ---------------------------------------------------------------------- 428 # This will be the default config file 429 # ---------------------------------------------------------------------- 430 431 $config_file= "$basedir/my.cnf"; 432 433 my $cfg_template= find_in_basedir($opt,"file","my-default.cnf", 434 "share","share/mysql","support-files"); 435 -e $cfg_template or cannot_find_file("my-default.cnf"); 436 437 $copy_cfg_file= $config_file; 438 if (-e $copy_cfg_file) 439 { 440 $copy_cfg_file = s/my.cnf/my-new.cnf/; 441 # Too early to print warning here, the user may not notice 442 } 443 open (TEMPL, $cfg_template) or error("Could not open config template"); 444 open (CFG, "> $copy_cfg_file") or error("Could not open config file"); 445 while (<TEMPL>) 446 { 447 # Remove lines beginning with # *** which are template comments 448 print CFG $_ unless /^# ***/; 449 } 450 close CFG; 451 close TEMPL; 22 13年4月17日水曜日
  • 23. Testで いままでとおってた insertが エラーになる。 23 13年4月17日水曜日
  • 24. デフォルトのsql_modeの設定が5.5 までは空だったのに5.6からは指定さ れていた。 /usr/my.cnfに明示的に書かれてい た。 24 13年4月17日水曜日
  • 25. 5.5系 mysql> SELECT @@GLOBAL.sql_mode; +-------------------+ ¦ @@GLOBAL.sql_mode ¦ +-------------------+ ¦ ¦ +-------------------+ 1 row in set (0.00 sec) 5.6系 mysql> SELECT @@GLOBAL.sql_mode; +--------------------------------------------+ ¦ @@GLOBAL.sql_mode ¦ +--------------------------------------------+ ¦ STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION ¦ +--------------------------------------------+ 1 row in set (0.00 sec) 25 13年4月17日水曜日
  • 26. GTIDがOnだと、 レプリケーションが 組めない 26 13年4月17日水曜日
  • 27. • 環境 mysql5.5(Master) + mysql5.6(Slave) • エラーメッセージ root@localhost[(none)]> show slave statusG [...] Last_IO_Error: The slave IO thread stops because the master has GTID_MODE OFF and this server has GTID_MODE ON 27 13年4月17日水曜日
  • 28. GTIDの設定 log-bin log-slave-updates gtid-mode=ON enforce-gtid-consistency GTIDを使用するには、レプリケーションを組む サーバ全体でGTIDを有効にする必要がある。 28 13年4月17日水曜日
  • 29. GTIDの利用を断念 root@localhost[(none)]> show global variables like '%gtid%'; +--------------------------+----------------------------------------------+ ¦ Variable_name ¦ Value ¦ +--------------------------+----------------------------------------------+ ¦ enforce_gtid_consistency ¦ OFF ¦ ¦ gtid_executed ¦ 9ee58062-864d-11e2-a94b-003048b3b452:1-64049 ¦ ¦ gtid_mode ¦ OFF ¦ ¦ gtid_owned ¦ ¦ ¦ gtid_purged ¦ ¦ +--------------------------+----------------------------------------------+ 5 rows in set (0.00 sec) 29 13年4月17日水曜日
  • 30. -p オプションを つけてるとwarningに 30 13年4月17日水曜日
  • 31. • エラーメッセージ Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 476849 Server version: 5.6.10-log MySQL Community Server (GPL) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. root@localhost[(none)]> 31 13年4月17日水曜日
  • 32. mysql_config_editorが 便利 32 13年4月17日水曜日
  • 33. • 暗号化されたパスワードが 「.mylogin.cnf」に書かれるので、 「.my.cnf」に平文のパスワード書かなく てもいいから安心。 $ mysql_config_editor set --user=admin --password Enter password: <パスワード手入力> $ mysql_config_editor print --all [client] user = admin password = ***** 33 13年4月17日水曜日
  • 34. セクションも指定できる。 mysql_config_editor set --login-path=mysqldump --user=root --password Enter password: <パスワード手入力> $ mysql_config_editor print --all [client] user = admin password = ***** [mysql] user = admin password = ***** [mysqladmin] user = root password = ***** 34 13年4月17日水曜日
  • 35. mysqldumpでエラー 35 13年4月17日水曜日
  • 36. • mysql5.6 から mysql5.5のdump をとるときにerrorになる。 • エラーメッセージ mysqldump: Couldn't execute 'SELECT @@GTID_MODE': Unknown system variable 'GTID_MODE' (1193) 36 13年4月17日水曜日
  • 37. --set-gtid-purgedをoffにすればいい あまり無いと思いますが、あえて5.5系とかの dumpをとる場合は、このオプションを付ける事 でgtidを使用した環境からのダンプファイルに以 下内容が出力されなくなります。 SET @@GLOBAL.GTID_PURGED='71803be2-7816-11e2-8c99-5254003e1cec:1-665'; 37 13年4月17日水曜日
  • 38. 今後の予定 38 13年4月17日水曜日
  • 39. • GTIDをON • MHAの導入 39 13年4月17日水曜日
  • 40. ご清聴ありがとう ございました。 40 13年4月17日水曜日