Database JUNKY

MySQL,MariaDBを中心としたブログです

MySQL

SQLだけで、メールアドレスの@以前の文字を置き換える

SQLって奥が深いです。SQLだけで、ほぼデータの加工が行えます。 今回はメールアドレスをマスキングかけるというのを試してみたいと思います Lenovo タブレット 2in1 パソコン Miix 3 80HV0055JP/Microsoft Office Home & Business 2013搭載/2GB/64GB/Window…

MySQLのオンラインバックアップ方法(mysqldump)

いままで使ったことのあるmysqldump でもバックアップの方法をメモ dumpするたびに、毎回毎回オプションを調べている時間がもったいないので、ほぼ自分用にメモしていきます。今後、追記してく予定なので、流れ次第で、内容が重複しちゃうかもです ほぼ、こ…

KeepAlivedとMySQLのタイムアウト設定は必ず確認して!!

MySQLをKeepAlivedでロードバランサーを実現というのは結構ある話ですが、それぞれのセッションタイムアウト値が違うため、いざサービスを運用する!!なんて時に思わぬ落とし穴があったります。そのための注意書きです (adsbygoogle = window.adsbygoogle ||…

MySQLをKVSのように使う

RDBは、使いやすい!速い!なのですが、カラムの拡張には、どの製品であろうと弱い。。24時間365日稼働しているサービスでカラム追加なんてなんてしようものなら、もうとんでもなくめんどくさいことになる。。 というわけで、カラム拡張が容易なテーブル構成…

MySQL 登録されている索引の一覧を出力する

MySQLにて、登録されている索引を確認する方法としては mysql > show index from TABLE_NAME; で確認できます。しかしこれですと全てのスキーマ内に存在する全ての索引を確認することができません では、索引が設定されているかいないかわからないテーブルの…

MySQL レコードの更新日を自動的にセットする

いやーーー全然・・知らなかったですが・・ALTER TABLEっていうかCREATE TABLEの時も同じですが、ON UPDATE オプションを付けると、データ更新時に指定された値を自動でセットすることができるらしい。。 DEFAULTとは違うんです・・詳細は以降から・・・

MySQL ストアドファンクションを使ってみましょう!

MySQLって、ストアドプロシージャとストアドファンクションの2つが利用できます。ストアドプロシージャは、CALL XXX って呼ぶもの、一方でストアドファンクションはSQLの中で呼べたりできるものです。 ストアドファンクションは戻り値が1つしか返せないと…

MySQL 256バイト以上あるカラムに索引を貼る

mariadb のテーブルで、256バイト以上あるカラムに対して索引を生成する場合の手順です。MySQL5.5以上もこれでいけるとは思うのですが、試していないので、ここでは割愛します。ここでは、MariaDBを再起動しないで実現する方法を記載します。また、いつか再…

SQLで文字の一部分を置き換えて表示する方法

あくまでも例ですが・・ よくテストデータを作成する時に、 ドメインは残しておきたい でも@より前のアカウントはマスキングしたい なんていうリクエスト結構ないですかね?昔、ガラケーなのではあったのですが、今そんなにそんなリクエストないのかな? な…

nginxのログをtd-agentを利用して、MySQLに突っ込んでみた 〜アクセスログのデータベース化

nginxのログを収集したいので、td-agentを入れることにした。そのあとどうするかは考えます ここでは、nginxのログの設定から、Fluentdの設定を行い、最終的にMySQLのテーブルにログを吐くところまでを記載したいと思います かなりの長編ですが、皆様の環境…

MariaDBにアカウントを設定しよう

mariaDBにアカウント設定しよう 前回こちらでMariaDBはインストールできたかと思います。この時点ではmariadbはデータベースもなければ、ユーザーIDもありません。内部的にrootというアカウントを持っておりますが、パスワードなしの状態で運用するのは危険…

サービス無停止でMySQLのレプリケーション環境を構築する方法

サービス無停止でMySQLのレプリケーション環境を構築する方法 稼働中のサービスを停止できないけど、スレーブを増やしたい(増殖したい)なんて場合に使える技になります。 実際これでとあるサービスの運用をやっております。 おうちで学べるデータベースの…

MySQLでデータ更新時に自動的に更新日時をセットする方法

MySQL5.6およびMariaDB 10.0 以降のカラム定義にてdatetime型にON UPDATE オプションを付けると、データ更新時に日付時刻を自動でレコードにセットすることができるらしい。 3ステップでしっかり学ぶ MySQL入門 [改訂2版] 早速ですが試してみたいと思います…

MySQL ストアドプロシージャ/ファンクションを使ってみよう!

いやー・・・本当に情報が少なくて苦労した。というか現在進行形で苦労してます。表題の通り、MySQLのストアドプロシージャ/ストアドファンクションの件なのですが、oracle触っているときも、db2触っているときも、「管理が複雑になるから」ともっともらしい…

GO Lang MysqlでテーブルをSELECTするSAMPLE

GO 言語 ・・・若干というか、全然わかっていないのですが、とりあえず動いたのでメモする なにぶん、プログラムを久しぶりに書いたので、細かいところは全然だめですが、次回何かに応用するときに自分でここ見ようというレベルのメモになりますので、至らな…

MySQLのmy.cnf に日本語コメントを入れてみた

ども、すっかり暑くなりましたね。夜暑くて、寝つきが悪く、この季節は、本当にどろどろした朝をむかえます。 なるべくであればクーラーは使いたくないのですが、とにかく快眠することを優先で考えるのであれば、やはり使っちゃいますよね・・タイマー使って…

MySQL 二点間の距離を正確に出す!~ distance_sphere()

いきなりですが、「MySQLで2点間の緯度・経度から距離算出」が!!前から気になっていたことがありました、 PostgreSQLのPostGISにはあって、MySQLのジオメトリ関数にはない関数、distance_spheroid というもので、回転楕円体で計算で、点間距離を算出する…

知らなかった・・ ALTER TABLE .. ON UPDATE オプションの存在

いやーーー全然・・知らなかったですが・・ALTER TABLEっていうかCREATE TABLEの時も同じですが、ON UPDATE オプションを付けると、データ更新時に指定された値を自動でセットすることができるらしい。。 DEFAULTとは違います!DEFAULT とは。。

オートナンバー型のカラムを含むテーブルをパーティショニング化する方法

非パーティショニングテーブルを後から、パーティショニングする際にかならずハマるのが”オートインクリメント列を含む”テーブルに関する、パーティショニングの時です その回避策について、以下にまとめました。ご参考になればと思います。 (adsbygoogle = …

SQLでトリガーのみのmysqldumpコマンドを生成する

日々運用を続けている中でたまーーーにでてくる、定義のみのバックアップ、ストアドプロシージャのみバックアップする、トリガーのみをバックアップなど、そのイベントが発生するたびに、googleで調べるのが面倒なため、前回同様、ほぼ自分用にメモ状態にな…

大量のデータのロード時のMySQL server has gone awayエラーについて

大量のデータのロード時に出力されるエラーでたまにでるのが、このメッセージ [shell] ERROR 2013 (HY000) at line 66: Lost connection to MySQL server during query ERROR 2006 (HY000) at line 67: MySQL server has gone away [/shell] ウチだけの環境…

MariaDBを試してみる!・・といってもインストールの話

こんばんわ 勉強というか、お仕事でとある、IBMのデータベースサーバをMySQL 5.5に切り替えるなんていうプロジェクトを進めていました。IBMのデータベースサーバの構成を、MySQLにマイグレーションするのって、初めは簡単だと思っていたのですが、蓋を開けて…

McAfeeのMySQL監査出力ログを、fluentd(td-agent)でMySQLに戻す

先日、[MySQL] McAfeeのMySQL監査ツールを導入する!!にてMySQLの監査ログを、JSONで出力することができるよ!ってところまで説明しました。今回は、せっかくJSONで出力されているんだからJSONファイルを、Fluentd(td-agent)を経由して、また、MySQLに戻…

McAfeeのMySQL監査ツールを導入する!!

今まで、あまり気にしていなかったのですが、MySQLって監査(audit)の機能ってないのです。例えば、アプリケーション上のトラブルでデータが消えてしまった。原因がわからないなんていった場合の「いつ?」「だれか?」「何をした?」ってのを追跡したい場…

MySQL 5.5 を 5.6にアップグレードする(CENTOS 5 RPM)

仕事が忙しくて中々書けなかった・・・ご存知かと思いますが、MySQLの5.6が正式リリースされました。いままで「これがあったら良いのに・・」という機能がてんこ盛りなので、さっそく自分の環境に入れてみようとと思いまして・・・ってよく考えてみたら、MyS…

世界最速のデータベース、memsqlを試してみる

昔、試してみようと思っていて忘れていたインメモリデータベース、memsqlについて話を触れてみたいと思います。このDBMS半年前くらいからあったのですが、「MySQLのメモリエンジンと何が違うの?」と思いつつ結局、後手後手に回り、ついでに存在自体忘れてし…

MySQL 各クライアントの接続数を簡単に集計する

MySQLのプロセス状況を確認するには、show processlist コマンドで確認することはできるのですが、じゃあ、各接続クライアント毎のサマリを出したい場合はどうすんの?と言ったときに役立つシェルを作ってみました。

MySQL Innodb テーブルスペース利用率をさくっと算出する

普段はあまり気にすることはないのですが、運用してから数ヶ月、もしくは数年たった時に「あれ?テーブルスペース内にどれくらいのデータは入っているのだろう?」とか思ったことはありませんか?たとえばこの心配って、MySQLの設定でテーブルスペースを固定…

MySQL 異なるストレージエンジン間のレプリケーションをスムーズに行う

どもです。InfiiDBの最終章は、色々とトラブルがあって検証中です。もすこしで解決しそうなので、その時になったらまた記載させていただきます。ごめんなさり・・。今回は、そのトラブルの一つであった、「異なるストレージエンジン間のレプリケーション」の…

MySQL クエリーキャッシュのヒット率を求めるSQL

MySQLのクエリーキャッシュのヒット率を求めるSQLを作成しました。結果キャッシュのヒット率が二割以下の場合は、キャッシュを利用しない設定のほうがパフォーマンスを出すことができます。このクエリキャッシュヒット率をSQLで求められるように作成してみま…