Quantcast
Channel: 日々の覚書
Browsing all 581 articles
Browse latest View live

innodb_autoinc_lock_mode = 1 vs 2 でバルクインサートが競合した時のAUTO_INCREMENTの挙動が違うはなし

TL;DRinnodb_autoinc_lock_modeのデフォルトはMySQL 8.0で2になった(5.7とそれ以前は1)innodb_autoinc_lock_mode= 2だとステートメントベースのレプリケーションではアンセーフだ、というのはよく語られるけどINSERT INTO .. SELECT ..や LOAD DATA...

View Article


本番データ de CLONEプラグイン、そして思ったこと

TL;DRみんなだいすきCLONEプラグインを使って本番のマスター(稼働中)から本番のスレーブ(諸事情により再構築が必要だった)を作った。何度かリトライはしたけど、ちゃんと動いているような気がするCLONE INSTANCE FROM ..を実行するターミナルは tmuxなどで切断から保護しましょう…CLONEプラグインって何的な人は先にこっちを読んでいただくと良いかも知れない。日々の覚書:...

View Article


手探りでマイエスキューエルシェる!

TL;DRドキュメントを読むのが面倒だから “TAB” 補完でがんばってみた優秀この記事は MySQL Advent Calendar 2019の1日目の記事です!MySQL Shellは遊んでみたいけど、ドキュメントは読みたくない(面倒だから)タブ補完だけでどんなメソッドがあるか探索しにいく!$ mysqlshMySQL Shell 8.0.18Copyright (c) 2016, 2019,...

View Article

ConoHaの上でひたすらMySQLをビルドする簡単なおしごと in 2019年

この記事は ConoHa Advent Calendar 2019の7日目の記事です。6日目は reasonsetさんの 【ConoHaアドベントカレンダー 2019】 高性能レンタルサーバー ConoHa WINGを本格的に使い倒す - Chienomiでした。大作。面白かった。去年、 一昨年、 三年前とひたすらConoHa VPS...

View Article

MySQL 8.0予約語問題にも使える、performance_schemaからエラーになったクエリーをたたき出す方法

TL;DRevents_statements_*テーブルの message_textカラムにエラーメッセージが入っているMySQL 5.6とそれ以降で使えるこんな便利なものに気が付いていなかった…注意MySQL 5.6では events_statements_historyは enabled = ‘NO’ になっているので自分で...

View Article


MySQL 8.0時代のSET GLOBALとかSET PERSISTに必要な権限

TL;DRオンライン変更は SYSTEM_VARIABLES_ADMIN権限。 SUPERは非推奨。SET PERSIST_ONLYは SYSTEM_VARIABLES_ADMIN権限 &&PERSIST_RO_VARIABLES_ADMIN権限ふとコードを読んでいる時に SET PERSIST_ONLYには SUPER権限は絡んでなさそうなことに気が付いたので試してみる。 /*...

View Article

Twitterの過去のツイート履歴をMySQLに取り込む in 2019

TL;DR過去のツイート履歴がCSVからJSに変わったっぽいでも大丈夫、俺達には JSON_TABLE関数があるからかつてはCSVだったツイート履歴、最近ダウンロードしてみたらJSファイルになっていた。しかもでかい。$ mkdir work$ cd work$ unzip...

View Article

CentOS 8.0にしたらいくつかのURLに error:141A318A:SSL routines:tls_process_ske_dhe:dh...

TL;DR原因はこちらが詳しく急に外部APIとの通信が “dh key too small” で失敗するようになったのはなぜ? - BANK tech blog対策はこちらに載っていたRed Hat Enterprise Linux 8 新機能をわかりやすく解説【RHEL8】 – Hacker’s High$ sudo update-crypto-policies --set...

View Article


explicit_defaults_for_timstampのONとOFFでエラーになるケースならないケース

TL;DRexplicit_defaults_fot_timestampカラムのデフォルト値INSERTでカラム未指定INSERTでNULLを指定ONなしエラーエラーONありOKエラーOFFなしエラーOKOFFありOKOKexplicit_defaults_for_timestampというパラメーターがあって、これは「昔の古いTIMESTAMP型の挙動、SQL標準じゃないからちゃんとエラーにするよう...

View Article


Image may be NSFW.
Clik here to view.

MySQL WorkbenchからのLOAD DATA LOCAL INFILEが失敗する場合

TL;DR先に 日々の覚書: MySQL 8.0でLOAD DATA LOCAL INFILEが “ERROR 1148 (42000): The used command is not allowed with this MySQL version” または “Error: 3948. Loading local data is disabled; this must be enabled on...

View Article

InnoDB ClusterはPKがないテーブルに対する更新を "ERROR 3098 (HY000): The table does not...

TL;DRInnoDB Cluster(というかGroup Replication)環境で ERROR 3098 (HY000): The table does not comply with the requirements by an external plugin.と言われたら、テーブルにPRIMARY KEYがあるかどうかを疑ってみても良いかもInnoDB Cluster環境に...

View Article

CentOS 7のAMIでEC2を起動してGroup Replicationを組むところまでを何も考えずに

TL;DR毎回ちょこちょこ打ち込むのが面倒になったのでコピペ用にまだGroup Replicationを調べるのがメインなのでMySQL RouterはどうにもしてないGroup Replicationに加わる全てのノードでsudo -isetenforce 0yum install -y...

View Article

MultiPrimaryModeのGroup Replication環境を崩壊させるテスト

TL;DR完全崩壊した時の復旧シナリオを考えたりするには、やっぱり崩壊した状態を再現させられると便利だよねcluster.switchToMultiPrimaryMode()してから2つの別のノードに「1回目は成功するけど2回流すと必ず失敗するALTER TABLE」を投げると崩壊させられる日々の覚書: CentOS 7のAMIでEC2を起動してGroup...

View Article


InnoDB Clusterの全ノードを正常に停止させたあとの復旧方法

TL;DRMySQL Shellで dba.rebootClusterFromCompleteOutage()深く考えずにGroup Replicationの全ノードを停止すると、いざ次回起動した時に2020-02-25T09:14:08.497656Z 0 [ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS]...

View Article

MySQL 8.0.19現在のGroup Replicationで空パスワードのアカウントの認証プラグインだけを変えようとすると変になる

TL;DRepelのsysbenchがcaching_sha2_passwordに対応してないので、root@localhostのパスワードを空のまま認証プラグインだけmysql_native_passwordに変更しようとしたプライマリーノード以外ではパスワードがEXPIREされて再変更を促されたプライマリーノードで SET PASSWORD =...

View Article


InnoDB ClusterのマルチプライマリーモードはGTIDの払い出し方が雑…

TL;DRCertificationのタイミングで綺麗に連番(GNO)を払い出しているのかとか思ったら全然そんなことはなかった各サーバー内ではちゃんと直列化して、サーバーまたいだ部分は100万番ずつズラしてユニークになるようにしているらしい。99万9999まで本物のトランザクションが来たら更にオフセットするのかしらん取り敢えず構築してマルチマスターモードに変更したところ。 MySQL...

View Article

壊したマルチプライマリーモード、その後に

TL;DRグループレプリケーションが他のノードから受け取ったクエリーは hostname-relay-bin-group_replication_applier*というリレーログに保管されるグループレプリケーションといえどリレーログなので再起動とかで勝手に消えはしないRESET...

View Article


シングルプライマリーとDDLとDMLと

TL;DRシングルプライマリー構成のInnoDB Clusterにおいてプライマリーノードで ALTER TABLE中の後続のDDL, DMLはプライマリーノードでブロックされない限りは ALTER TABLEを追い越してコミットすることができるコミットされた後続のDDL,...

View Article

グループレプリケーションのメンバーとInnoDB Clusterのメタデータと cluster.rescan()

TL;DRグループレプリケーション(mysqldそのもの)が認識してるノードの情報は performance_schema.replication_group_membersInnoDB Clusterの中でMySQL ShellとMySQL Routerが使うノードの情報は mysql_innodb_cluster_metadata.instances整合性が取れなったら...

View Article

グループレプリケーションの group_replication_applier と group_replication_recovery のリレーログ

TL;DRグループレプリケーションは(形式上かも知れないけど) group_replication_applier というレプリケーションチャンネルと group_replication_recovery というレプリケーションチャンネルを持っているグループレプリケーションの通信が問題なく行われている間は GCS(Group Communication System) から...

View Article
Browsing all 581 articles
Browse latest View live