41から始めました

文字通り41歳から始めたブログです。DB(MySQL)を使ってお仕事してるので、DB周りの話を中心に最近始めたこととかをTwitterのノリで書いています。なお、本サイトにおいて示されている見解は私個人の見解であり、所属団体や組織を代表するものではありません。

Re:dashの権限設定について

以下の話はRedash 6.0.0+b8537の話です。 新しくなったら変わっててほしいところです。 ユーザーごとの権限設定したい 先に言っておくと、 画面からすべてはできません 画面からできること ユーザーを作ること グループを作ること グループとユーザーを紐づ…

AWS(EC2)上にAZまたぎでGroup Replication(MySQL5.7)作った話

今回、AZをまたいだEC2(AWS Amazon Linux2)上にMySQL5.7(.25)をインストールし、Group Replicationを構成する手順を記載します。 MySQL Shellを使って設定するので、MySQL Shell用のインスタンスを一台用意します(※)。 ※本来は3台のDB上のどれかに入れてもい…

pt-index-usageの--databasesオプションについて

pt-index-usage Percona Toolkitのpt-index-usageはとても便利で、スロークエリログから実行されたクエリを読み取り、それらがインデックスをどのように使用しているかを分析するものだ。 https://www.percona.com/doc/percona-toolkit/LATEST/pt-index-usag…

【メモ】OSC2019 MySQL ~ yoku0825 と sakaik が語る最新情報と周辺情報~

土曜日に聞いてきたOSC2019SpringのMySQL話を議事録的にメモったんでアップしてみる。 色々不足もあるかもしれないですが・・・。 MySQL ~ yoku0825 と sakaik が語る最新情報と周辺情報~ MySQLについて雑談をする会 自己紹介 坂井さん(以降S) 各地のOSC…

EC2上でPercona XtraDB Cluster構築(Galera Arbitratorは後日入れたい)

基本的には公式の手順通り 作業概要 Percona XtraDB Cluster構築を行う。 構成は以下の通り EC2×4台 Percona-XtraDB-Cluster-57-5.7.24×3 ProxySQL×1(後日) Galera Arbitrator(さらに後日)→ProxySQLと同じサーバとする 事前作業 AWS/EC2インスタンスを3台(DB…

MySQLなんでも相談会行ってみた

無料という言葉に弱い僕 最近、スマートスタイル社のセミナー何回か参加して、そこで知った「MySQLなんでも相談会」という無料コンサルティングに行ってみた。 www.s-style.co.jp このMySQLなんでも相談会ではスマートスタイル社の今までの経験を生かして、…

Error Code: 3009. Column count of mysql.user is wrong.

MySQL8.0.14でそれは起きた CREATE USER 'test1'@'%' IDENTIFIED BY "test1"; ってな感じでユーザ作成を行おうとすると、 Error Code: 3009. Column count of mysql.user is wrong. Expected 51, found 49. Created with MySQL 80011, now running 80014. Pl…

MySQL TunerでDBの健康診断

MySQL Tunerってなに? チューニングをアドバイスしてくれるツール チューニングに限らず、セキュリティ診断までしてくれる パラメータやバージョンでの問題点を洗い出してくれるツール Git Hubに上がってる(https://github.com/major/MySQLTuner-perl) Perl…

PerconaToolkitのpt-archiverを使ってみたんだが・・・。

pt-archiverとは 大きなテーブルから他のテーブルあるいはファイルにレコードをアーカイブするのにツール where句が使え、抽出条件が設定できる 出力ファイル名にDBスキーマ名、テーブル名、年月日時分秒を入れられる 抽出対象データを自動的に削除する(デフ…

セミナー行ってきた(MySQLのActive/Active型HA と 靴&ファッション通販 ロコンド様の可用性への取り組み事例紹介)

セミナー概要 2019-01-24(木)16:00 - 18:30 データベースのHAの話から、MySQL5.7から使用可能なマルチマスター型HAのMySQL InnoDB Clusterについての説明、および実運用での話をLOCONDO.jpの杉山さんから聞く。 資料については別途公開予定 イベント紹介 h…

スロークエリログを詳細化するlog_slow_extraパラメータ

log_slow_extraパラメータが8.0.14から追加された 何それ?おいしいの? スロークエリーログが有効で出力先が含まれているFILE場合、サーバーはスローファイルに関する情報を提供するログファイル行に追加のフィールドを書き込みます。セクション5.4.5「遅い…

ST_Distanceの単位パラメータ使ってみる

MySQL8.0.14からGIS関数のST_Distanceが少し改良された ST_Distance(g1、g2 [、unit])関数に3番目のオプションのパラメータを追加されました。 公式では8.0.13のころから紹介されてたんですが、やっと試せます。 新しいパラメータは、結果に使用する[単位]…

Splunk Fundamentals 1 はじめよう!

Splunk ちゃんと勉強したいなぁ 普段、Splunk触ってはいるものの、局所的な使い方しかできてなくてSplunk使えてない感じがしていたところに神の声が! そんなものがあるのか! さっそく触ろう・・・と思いつつも、家族の妨害もあり触れたのは1月入ってから。…

MySQL InnoDB Clusterの構築(by docker)

MySQL InnoDB Clusterさわってみたい こないだセミナーも行ったし、DBプロキシについて調査しといて―という依頼もあったりしたんで、MySQL InnoDB Cluster環境を作ってみようと考えた。 MySQL InnoDB Clusterとは 普通にサーバ立てて、構築する場合はここ(Sm…

インデックス指定時のカラムの桁数について

こんなテーブルがありました CREATE TABLE `hogehoge` ( `hoge_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'HOGEID', ・・・(略)・・・ `hoge_text` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'ほげほげ', PRIMARY KEY (`hoge_id`), …

特定の地点がテーブル内に存在するか確認する (ST_CONTAINS)

この日記は RDBMS GIS アドベントカレンダー2018の13日目向けに書きました。 昨日のノリで軽い記事ですが… ST_CONTAINS テーブル内に存在するPOINT型の地点に対し、特定の緯度経度の地点が存在するか確認するなら SELECT COUNT(*) FROM テーブル名 WHERE ST_…

整数型のカッコ「()」に入る数字は表示幅

この記事はMySQL Casual Advent Calendar 2018 13日目の記事です。 テーブル作成時 カラムの型を定義しますが、数字列に対して hoge_id` bigint(20) hoge_flag` tinyint(1) というようにカッコ()の中に数字を入れていると思いますが、この数字がそもそも省略…

テーブルに登録されている2点間の距離が知りたい ( ST_DISTANCE)

この日記は RDBMS GIS アドベントカレンダー2018の12日目向けに書きました。 ST_DISTANCE() spatial関数で2点間の距離を返す関数がST_DISTANCE()だというのは知っている。 ST_DISTANCE() ところが、公式ドキュメントからは実際に登録されているテーブルの値…

非公式なmysql-upgrade-checkerをMySQL5.5で試してみる

このエントリーは MySQL Casual Advent Calendar 2018 の5日目の記事です。 そもそもMySQL Upgrade Checkerって? 今まではリリースノートを読んで、つぶさに問題点を洗い出して、現行のDB環境に問題が無いかを人手にチェックしていました。 それをMySQL5.7…

Rainbow CSV使ってみた

Rainbow CSVって? CSVファイルやTSVファイルをさまざまな色で強調表示し、 SQLのようなクエリを実行することができる Visual Studio Codeの拡張機能です。 https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv twitter上で見かけ…

SPACIAL関数で遊ぶ前の準備でハマったアレコレ

この日記は RDBMS GIS アドベントカレンダー2018の3日目向けに書きました。 はじめに アドベントカレンダーが作られてて、お話を聞いて面白そうだと思って少し触った経緯もあり、 あらためて最新のMySQL8.0.13で触りなおしてみた際、ハマったことについて書…

マニュアル読んで、REFERENCES権限いらねって外したら・・・

REFERENCES権限 https://dev.mysql.com/doc/refman/5.6/ja/privileges-provided.html 僕はこれを見てすっかり誤認していました。 REFERENCES 権限は現在使用されていません。 あー、過去にはあったけど使ってないのね。じゃあ、いらないよね→REVOKE。 と。 …

ユニークキーのパフォーマンス

先日に続き、mysql-casualから。 しかも今度は自分からの質問。 yoku0825さんが答えて下さったので、自分のほうで検証して確認してみようと。 その結果をここにアップしました。 1.ユニークキーって? UNIQUE 制約を使用して、主キーに関係しない特定の列…

MySQL8で廃止されたinformation_schemaのテーブル

大好きなクエリが流れなくて、アレ?と思ったのが始まり d.hatena.ne.jp のSH2さんの『ロック競合を表示するSQL』(以下参照) select t_b.trx_mysql_thread_id blocking_id, t_w.trx_mysql_thread_id requesting_id, p_b.HOST blocking_host, p_w.HOST reques…

テーブルやカラムのCollationは揃えよう

元ネタはMySQL Casualのslack この辺以降 それを見て、 そういや自分も2年前(DB移行時)にこれ調べたなー 社内メンバーに改めてちゃんと周知しよう なんか記事書くか という軽い備忘録的な感じ。 ちなみに、揃えないとどうなるか? slackにもあったように、 …

【小ネタ】group_cancatで文字列が途中で切れた時

mysqlにgroup_concatという便利な関数がある MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.19.1 GROUP BY (集約) 関数 を見てもらうと分かるが、group by で取得できる値を1つのカラムに連結して表示できる。 資料作ったりするのによく使う。 関数の中…

すごくライトな話(MySQL Workbenchのインストール~DB登録まで)

MySQL Workbenchのインストール MySQL :: MySQL Workbench のリンクから 画面に入って「ダウンロードはこちら」ボタンを押して の画面に遷移するので、「Download」ボタンを押す 画面でID持ってたらログイン、 持ってなくて単にダウンロードしたいだけなら「…

【宅建】受けました(合格しました)

宅建受けました 今回はIT技術の話ではありません。 宅建士試験という試験を受けてきた話です。 実は3年連続で受けてて、今年をラストとして考えてました。 そして、自己採点では40点だったので、多分受かったかな。 (→12月6日に合格証が来たので正式に受かっ…

パラメータ変更時の落とし穴

パラメータ確認時に落ちる 最近のMySQLはパラメータをオンラインで変更できるので、 SET GLOBAL パラメータ名=xxxx だとか SET パラメータ名=xxxx で変えている人も多いと思う。 でも、SHOW VARIABLES;で確認したときに変化が無くて、なんで変わらないんだ?…

JOINしてDELETEする (Error Code: 1064が出たとき)

今日もGIS関数の話は後回し・・・。 Error Code: 1064 以下のSQLを流したときに出たエラーです。 delete from 子テーブル A1 inner join 親テーブル A0 on A1.キーカラム = A0.キーカラム where 適当な条件 エラー文言は以下のような感じ Error Code: 1064. …