読者です 読者をやめる 読者になる 読者になる

なからなLife

geekに憧れと敬意を抱きながら、SE、ITコンサル、商品企画、事業企画、管理会計、総務・情シス、再び受託でDB屋さんと流浪する人のブログです。

MySQLのセッションタイムアウトの制御

timeout系パラメータはいくつかあるけれど 新規接続時のタイムアウト(connect_timeout)ではなく、一度確立した接続がタイムアウトで切断される現象に影響するタイムアウト設定のお話。 ERROR 2013 (HY000): Lost connection to MySQL server during query…

MySQLの文字列型の扱い

先日、この記事が公開されていたので gihyo.jp アレ?って思ってドキュメント見直して、手元の環境でも実行してみました。 確かに「その通り」だったのだけど、ドキュメントに書いてあるとおりのこと、かつ、「その一部」の話だなーとおもったので、もうちょ…

ノートPCと愛称の良い「USBハブ+優先LANアダプタ」

ノートPCの薄型化の影響で 有線LANポートが無い機種、増えてますよね。クラムシェル、2-in-1の折りたたみタイプ、セパレートタイプなど、薄さを追求するデザインを求める傾向に拍車がかかっています。MacBookみたいに「USB TypeC」だけ、みたいな尖ったヤツ…

MySQLでキャラクタセットを変更する

キャラクタセットはカラムレベルで持っている Oracleの場合はデータベースレベルで持っているキャラクタセット定義ですが、MySQLの場合、キャラクタセットはカラムレベルで持っています。ですので、同じデータベース、テーブルの中で、カラムによって別々の…

MySQLで幸せになれるヤツの続き-CloudWatchLogsを入れるとき、時々トラブる

AWS

atsuizo.hatenadiary.jp この絡みで、AWS EC2に後からCloudWatchLogsを入れると時々トラブるので、その解消法。 今回はMySQL一切出てきません。 普通に進めれば、以下手順でデフォルト設定終わるはず、なんだけど。 docs.aws.amazon.com に書いてあるんです…

MySQLで幸せになれるヤツの続き-列名の行は都度いらなくない?

atsuizo.hatenadiary.jp で挙げたワンライナーを見て、タイトルのような疑問を持った人もいるかと思いますので、そのへんの補足です。 お好みでどうぞ 「-N」オプションを付与すると、SQL実行毎に表示される列名の行を除外して出力させることができます。 な…

MySQLで幸せになれるヤツの続き-パスワードを隠蔽する方法

パスワードをゴニョゴニョする前に atsuizo.hatenadiary.jpで パスワードを生テキストで書くなって人はゴニョゴニョしてください。 って書いた話の件ですが、なんでこんな話になるの、ってところをまず押さえましょう。 mysqlクライアントでのログイン方法あ…

MySQLに対して定期的に実行して結果を保存しておくと幸せになれるアレ

ワンライナー mysql -u ユーザ -pパスワード -h 接続先 -e "SQL文" | sed -e 's/\t/\" \"/g' | sed -e 's/^/\"/g' | sed -e 's/$/\"/g' | sed -e "s/^/$(date '+%Y%m%d %H:%M:%S') /g" >> ファイル パスワードを生テキストで書くなって人はゴニョゴニョして…

「AWS 認定ソリューションアーキテクト - アソシエイト」合格した

どんな試験 すでにたくさんの方が受験し、レポっているので、今更感たっぷりですが。 AWS 認定ソリューションアーキテクト ? アソシエイト試験は、AWS プラットフォームでの分散アプリケーションとシステムの設計経験がある個人を対象としています。この試験…

Kindleよりも紙で読む方が向いてる本

Kindle版、便利だよね 先日、ダンボールにして10箱、300冊近い蔵書を処分したのを機に、なるべく電子書籍、なるべくKindle版で購入しようと思い始めています。 保管場所の問題が最大の理由ですが、処分する際の中古引取価格を見て、「Kindle版と紙版の価格差…

Dell Inspiron 11 3000(3162)エントリープラスを買いました(到着後)

到着後、と言いつつ、到着までの話から。 納期の件 BTOなので、発注後に海外工場で組立工程に入り、運送フェーズに入ったところで到着予定日が見えるシステム。 最初に表示されたのが、発注日+7日。 お、MyNA間に合うじゃん、ってウキウキしてたら、船便が…

Dell Inspiron 11 3000(3162)エントリープラスを買いました(検討~購入編)

こんなPCです。 Dell ノートパソコン Inspiron 11 Pentiumモデル ホワイト 17Q12W/Windows10/11.6インチ/4GB/128GB出版社/メーカー: Dell Computers発売日: 2016/02/19メディア: Personal Computersこの商品を含むブログを見る 液晶:11.6インチ WXGA (1366x…

新年あけまして2017

仕事始めということで、年頭所感を残しておきたいと思います。 2016年初のエントリもかなり手短なエントリでしたが、今年も手短に。 昨年は プライベートの方は、身内の不幸が立て続けに起こってなかなか大変な前厄でした。 仕事の方は、昨年の転職以来、ほ…

お兄さんとの約束は守ろう!(MySQLのtx_isolationとbinlogの話)

MySQL Casual Advent Calendar 2016 - Qiita 21日目の記事です。 穴があったら埋めたいタイプの人です。5回目。。。 なお、大トリの25日が空いているみたいですが、3年連続であの方でしょうか?(・_|襖| ある日、MySQLおじさんお兄さんに、、、 って言われた…

MySQLのChar型のデータサイズについて小ネタ

MySQL Casual Advent Calendar 2016 - Qiita の 18日目です。がんばった。もう小ネタしか出てこない。 MySQLのchar型宣言時の数字は「データサイズ」ではなくて、「文字数」 っていうのは、ワリと有名。 Oracleからやってくると戸惑うところではあるけど、ワ…

JOIN ON で絞り込み条件を入れるのと、JOIN ONの後WHERE句で絞り込み条件を入れるのとでは、結果が違う件

MySQL Casual Advent Calendar 2016 - Qiita 12日目の記事です。 まさかの3回目。もうムリ。。。 JOIN ON句で結合条件ではなく絞込条件を書くことができることを、知らなかったのです。 具体的な名称がわからない&検索にもヒットしにくいので、勝手に名前を…

SQLを繰り返し実行したら段階的に応答速度が上がった話

MySQL Casual Advent Calendar 2016 - Qiitaの6日目の記事です。 AdventCalendar自体初参加でドキドキ、してたら、成り行きで2日連続。 コレ用のきれいなエビデンス取れるような環境要していなかったので、普段より荒っぽいですが、Casualな感じで失礼します…

MySQLのトランザクション制御がキモい話

MySQL Casual Advent Calendar 2016 - Qiitaの5日目の記事です。AdventCalendar自体初参加でドキドキ。 トランザクションの開始は、BEGINしたときじゃない! MySQLでは、BEGIN(START TRANSACTION。長いので、以下、特筆すべき場合以外は「BEGIN」で)を宣言…

MySQLで複合列PKなテーブルに対するWHERE条件でINを使うと、実行計画が変わる?

何言っているかわかんねえよ。 と思うので、事例で語る。なお、この事象が出たのは、MySQL5.6.23です。 実験1:PK列が1つのケース 準備 こんな感じでテーブルとデータを用意します。 mysql > create table test_in_exp_tbl( -> col1 int(11) not null, -> co…

本を処分することになりました。

部屋を奪われる 小学生の子供が2人いて、小学校入学時には誤魔化して?学習机も子供部屋も与えずに、「リビング学習」済ませていましたが、いよいよ娘達に一部屋奪われる与え、2人分の机と2段ベッドをることになりました。 そのうち「勝手に入ってくんなオヤ…

MySQLで接続(use)しているDB(スキーマ)が、他セッションからDROPされたときって、どうなるんだっけ?

タイトルの通りなんですが USE文って、所詮デフォルトデータベースの宣言(データベース名無宣言でオブジェクト名を扱うときに、どこを指しているとみなすか)にすぎないと思っていて、「じゃあ、その状態で指している先がDROP DATABASEされたらどうなるんよ…

詳解MySQL5.7出版記念イベント参加してきた

久しぶりのイベント参加 この手のイベント参加、久々だなー。 この手のイベント参加レポ書くの、久々だなー。 イベント、勉強会の類は、勉強会ブームを経て、毎日色々な所で開催されるようになっているわけだけど、自分も参加してなかったし、観測範囲で見て…

MySQL5.6以前でmetadata lock発生の犯人を後追いする

大事な機構「metadata lock」 MySQL5.5.3から導入された「metadata lock」。 その目的は、 「トランザクション実行中に触ったテーブルについて、DDLによるテーブル構成情報の変更から守る」 ということ。 そうしないと、ロールバックしようとしたら「テーブ…

RDS MySQLで、パラメータグループ指定したCollationでデータベースが作られないバグを踏んだ件

公式ドキュメント通りに操作しても、その通りに作られません MySQLのCollationはどのように決まるか。そして、3つの落とし穴。 - なからなLifeの「3:Amazon RDSのデフォルトデータベースは、さらにルールを破る」のところで書いたとおりなんですが、大事な…

MySQLからDumpできないんだけど、っていう問い合わせ

闇雲にdumpなんかされてもこまるんだけどさ 「DBから勝手にデータ引っこ抜いて、どこへ売りに行くんだい?」っていう野暮なツッコミもしたくなるくらい、唐突に問い合わせを受けることがあります。 第一声では、「何(手段)でデータを取り出そうとしたか?…

「詳解MySQL 5.7」はMySQL 5.6を使い続ける人も読むべき!

機能追加、機能進化の解説メインではあるけれど 詳解MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド (NEXT ONE)作者: 奥野幹也出版社/メーカー: 翔泳社発売日: 2016/08/26メディア: 大型本この商品を含むブログを見るはじめに、のところで 本…

MySQL WorkbenchでData Exportするとエラーになるのが直ってた

MySQL Workbench、便利だよね MySQL Workbench、色々な作業をGUIで操作できるので、MySQLベースで開発している人はかなりの確率で利用しているんじゃないかと思います。 標準的なSQLなら覚えている人でも、Export/Importユーティリティ系のコマンドまでは覚…

MySQLで、SQLレベルでCollationを指定する

Collation、色々な所で指定できる Oracle脳には馴染みの薄い、MySQLの「Collation」にまつわる挙動の話 - なからなLife MySQLのCollationはどのように決まるか。そして、3つの落とし穴。 - なからなLife と、立て続けにMySQLのCollationの話をしています。 …

MySQLのCollationはどのように決まるか。そして、3つの落とし穴。

今回は、設定値(パラメータ)の話 Oracle脳には馴染みの薄い、MySQLの「Collation」にまつわる挙動の話atsuizo.hatenadiary.jp の続きです。 前回は、Collation設定についてMySQLのデフォルトで使用される「_general_ci」だと「大文字小文字を区別せず」と…

Oracle脳には馴染みの薄い、MySQLの「Collation」にまつわる挙動の話

Collationとは 直訳すると「照合」。 MySQL的には、「照合順序」と訳されます。 ただでさえ面倒くさい文字コードの問題ですが、データを保存する際の文字コードとは別に、データを照合するときの方法を指定することができます。 照合って何かっていうと、=…

スケジュール遅延は取り戻せない!

極論ではあるけれど ここまで断定的な悲観論は、あまり見かけないと思いますが、個人的には、かなり確信をもってこう考えています。 もちろん、「遅延をしっかりリカバリして当初の締め切りを守った!」という意見・経験ものはあると思います。 ただし、そう…

ORDER BYで、単純な昇順降順「以外」で並べる!

いやー、知らないって怖いね。 なんだこのキモいSQLは、って思ってしまったけど、調べているウチに、これちゃんとSQL構文に則ってる!こちらが間違ってた!って事がわかっていきました。 あえて、知らなかった所から勢いで書いていたのを、そのままにしてみ…

RDSのフェイルオーバーとJDBCコネクションプーリングでハマった件

フェイルオーバー発生させたら、15分固まった。 Amazon RDS MySQL 5.6.23+Tomcat+JavaServlet+Connector/Jでコネクションプールを利用した環境で、RDSのフェイルオーバー試験をするべくManagement Consoleから「Reboot with Failover」を発生させたら、フ…

MySQLでPerformance_Schemaから過去に実行したSQLを把握する

MySQLに、OracleのSTATSPACK的なもの、ないの?というアレ。 Oracle文化が根強いSIerと一緒にMySQL案件に関わると質問される5つのこと - なからなLifeで触れた、アレのお話です。 「STATSPACK」に例えられる要件にもレベルがあって、私が質問を受ける文脈と…

MySQLでのNull、空文字、関連する関数など

先人はいるけれど、調べてみた。 比較演算子については、こちらにまとまってますね。 d.hatena.ne.jp 公式ドキュメントでは いきなり、ちょっとキツ目の表現でスタートします。 NULL 値の概念については、NULL が空の文字列 '' と同じであると考えがちな SQL…

Oracle文化が根強いSIerと一緒にMySQL案件に関わると質問される5つのこと

タイトル通りですが、とりあえず列挙 STATSPACK的なもの、ないの? ありません。 価格差考えてください。 TuningPack的なもの、ないの? (ry 過去に実行したSQL、誰がいつ実行したか追えないの? いわゆる監査ログってやつ。 無料でやりたいなら、generar…

MySQLの「ALTER TABLE ADD INDEX」と「CREATE INDEX」

ALTER権限とALTER TABLEの検証作業の中で。。。 atsuizo.hatenadiary.jp ここで、ALTERしか付与してないのに、INDEXのADD/DROPが成功してたことが、どうにも引っかかってまして。 公式ドキュメント上は。。。 表 13.1 GRANT および REVOKE に対して許容可能…

MySQLの「ALTER TABLE RENAME」と「RENAME TABLE」

RENAME TABLEなんてコマンド、知らなかったよ。。。 テーブル名の変更といえば、「ALTER TABLE old_table_name RENAME TO new_table_name」だと思っていたOracle厨でしたが、MySQLの案件に絡んでいたら「RENAME TABLE old_table_name TO new_table_name」な…

MySQLで、「ALTER権限だけ」でできることは何か?(2/2)

おさらい 前のエントリでは「ALTER権限だけ」でできることをひたすら確認してきました。 こちらのエントリで検証する「パーティション操作以外」でいうと、「RENAME」以外のALTER TABLE操作は全部できる!という状況でした。 では、続きまして、パーティショ…

MySQLで、「ALTER権限だけ」でできることは何か?(1/2)

テーブルのRENAMEができない!と言われたことが発端で。。。 ALTERは与えてあるけど、ALTER TABLEの中には、他の権限を持ってないとできないことも混在してまして、このRENAMEも、裏でDROP&CREATEしているらしく、ALTERだけではできない操作の1つでした。 …

MySQLのgeneral_log出力のパフォーマンス影響を調べてみた

きっかけ みんなで使っているMySQL上のデータを誰かが削除して、犯人探しをしたい、という話から。 別エントリでMySQLのログの種類と監査の手段について触れるけど、Community版だと基本的にgeneral_logを使うしか、後追いで誰が何したかを追いかける方法っ…

亡き父の四十九日法要が無事に終わって

少し落ち着いてきました。ブログも少しずつ再開させようかなと思います。 父のいない実家で、母と話をしているときも、父はただ入院しているだけでまだ生きているかのような、いつでも会えるかのような感覚が抜け切れません。 納棺、葬儀、火葬、その瞬間瞬…

タブ切り替えのショートカット

Excelは、Ctrl+PageUp/PageDown。 IEは、Ctrl+Tab/Ctrl+Shift+Tab。 FireFox、Chromeは、上記どちらでも可。 自分は、ExcelとChromeの利用頻度が高いという流れから「Ctrl+PageUp/PageDown」派。 めったに使わないIE使うときに気持ち悪くて仕方がない。。。 …

topコマンドからログファイルを出力させるために、sedとawkをかじる

topの概要 語り尽くされてますし、manにもすごく丁寧に説明がありますので、見た目だけ。 top - 10:12:59 up 42 min, 3 users, load average: 0.00, 0.01, 0.05 Tasks: 159 total, 1 running, 158 sleeping, 0 stopped, 0 zombie Cpu(s): 0.6%us, 0.4%sy, 0.…

innodb_log_file_sizeの適正値の目安

1時間に1回チェックポイントが発生する程度。 それってoraどこかで聞いたような。 こうやって算出する mysqlのコマンド「SHOW ENGINE INNODB STATUS」の「Log sequence number」か、「SHOW GLOBAL STATUS」の「Innodb_os_log_written」を1分間隔で取得し、そ…

RDS-MySQLでデフォルト作成される「innodb」スキーマって何よ?

RDS-MySQL5.6.23のお話です。他のバージョンは見てません。 インストール直後のデータベース一覧 ローカルに作った場合 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performanc…

MySQLの「ALL権限」のレベル

なにがどう違うの! GRANT ALL PRIVILEGES ON *.* TO 'ユーザ'@'%'; GRANT ALL PRIVILEGES ON `%`.* TO 'ユーザ'@'%'; 前者は「グローバル権限」、後者は「データベース権限、ただし、全データベース」。権限のスコープレベルをデータベースレベルに落として…

RDS MySQL5.6にSYSスキーマを組み込もうとして失敗する件

日本語情報、ぜんぜんないのね。 ていうか、MySQLのSYSスキーマ自体がそんなに普及していないのかな。 SYSスキーマは、パフォーマンスを見る上で重要なPerformance_Schemaの情報を見やすくしてくれるViewのセット。 ソースとセットアップ手順は、以下のURLの…

AWSのサービス・料金一覧の取得方法

ていうか、一応本家サイト(英語)にガイドあるのな http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html 超訳)>「2ステップに分けてURL叩いてね」 手順1:indexを取得する 以下URLで直接ダウンロード可能。us-east-1でしか…

インタホンの音が聞こえなかった件、からの、便利なアイテム

ヘッドホンしてました、すみません 自宅ではYoutube等を見るのにいつもヘッドホンしてます。 家族に迷惑がかからないように、隣近所に迷惑がかからないように、っていうのと、PC/モニタ付属のスピーカーがしょぼいってのが理由。で、一人で家にいる時に、宅…