そろばんのしょ(第3版第2刷)

雑魚い見習いDBAの日々学んだことや、どーでもいいことを。基本は自分の備忘録。

MySQL 5.7 Database Administratorを取ってきた(半年前の話) 

最近MySQL全く触れてないけど、久々に。 「オラクルマスター取得した」はたまに目にするんですけど、「MySQL認定資格とってきました」って話をネットで漁ってもsakaikさんのブログしかひっかからないので「ちょっとやってみるか」と思い取得してきました。(…

foreign_key_checksの挙動を知る

foreign_key_checksの挙動を知る この記事はMySQL Advent Calendar 2020 - Qiitaの8日目の記事です。 昨日はmita2さんの MySQL 8.0 でも utf8mb4_general_ci を使い続けたい僕らは - mita2 database lifeでした。 実は今まで、外部キー制約をガッツリ使った…

CLion on macOSでMySQLをデバッグする

最近MySQLのdebug buildをMacでする機会が多くなったのでメモがてら残しておく。 $HOME配下にmysqlディレクトリを作ってmysql_sourceにコードを、mysql_dataにdatadirとかバイナリを置く構成にする。 最初brewとかつかってなにかいれた記憶があるけど、忘れ…

MySQLのHELP構文ってやつ

この記事は MySQL Advent Calendar 2019の16日目です。 昨日はdupont-kedamaさんのMySQL5.5からMySQL8.0にマイグレーションしたゆるい話 でした。 MySQLにはHELP構文というものがあって、構文とかをサクッと調べられるということは聞いたことあったけど、ち…

いい加減MySQL8.0のRoleを理解する。その1

最近権限付与周りの依頼が来たときにMySQL8.0だった場合にROLEを理解してないのでそっと隣の人か斜め前の人にやってもらうことが多々あるのでいい加減ROLEを理解する。 たぶんその3くらいまでやる。 参考にするのはこちらの公式ドキュメント MySQL :: MySQL…

Oracle11gでのLIMIT,OFFSETするクエリをMySQL8のwindow関数で利用してみる

諸事情でWindow関数を触る機会があって、ちょっと前にyokuさんに教えてもらったWindow関数ネタを思い出したので1つ。 Oracle11gにはMySQLでおなじみ?のLIMIT,OFFSETがない。 そこで(いろいろやり方はあるけど)window関数を使ってあらわしたりする。 例え…

MTSを使ってクエリをロールバックする。

この記事はMySQL Casual Advent Calendar 2018の16日目です。 元ネタはlefredさんのこちらのスライド FOSDEM MySQL & Friends Devroom, February 2018 MySQL Point-in-Time Recovery like a Rockstar ざっくりいうと、 マルチスレッドスレーブ(以下MTS)を使…

mysqlのバージョンが古くてdump-slaveオプションが使えない時の対処法

これは MySQL Casual Advent Calendar 2017 の Day14 の記事です。 少し前にMySQL4.0を5.0にするという作業をしたときにmysqldumpでdump-slaveオプションが使えなかったときの話です。 世間ではMySQL8.0で賑わって?おりますが、このご時世4.0というバージョ…

tpcc-mysqlをインストールしてみた

tpcc-mysqlのインストール備忘録。 個人環境にクエリをかけながら検証をしたかったので元隣の隣の人に相談した所、tpcc-mysqlというベンチマークツールを教えてもらったのでインストールしてみた。 mysqlをyumでいれてないためところどころ詰まったので一緒…

MySQLでユーザーを作ったときのハッシュ値から同じ`PASSWORD`でユーザーを生成する

MySQL5.7の話。本日隣の人から教えてもらった事。 ユーザーを作るとき等でAPサーバーのIPが追加や変更されるときにハッシュ値から同じパスワードを設定することができる。 例えば、 fuki [(none)]> create user 'fuki'@'127.0.0.1' identified by 'Abc123'; …

MySQLのbinlogを見る方法

MySQLで生成されるbinログはlessでみてもバイナリログなので自分では解読できない なのでmysqlbinlogコマンドで見る。 下記は自分の環境5.7.18で試した結果 $ /usr/local/mysql5718/bin/mysqlbinlog mysql-bin.000004 SET @@SESSION.GTID_NEXT= '627024f4-26…