Database JUNKY

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

MySQL,MariaDBでタグ機能(TAG)を実現する(TOXI法)①タグ関連のスキーマ設計

f:id:hit10231023:20161026113033j:plain

MySQLでタグのしくみを作る?

f:id:hit10231023:20180309104332j:plain

MySQLタグの仕組みを作る場合は、どのような設計をすればいいのでしょうか? タグの設計にはいくつかの種類があり

  • Licious:コンテンツ系のデーブル1つの中にタグフィールドを持たせる方法
  • Scuttle: コンテンツ系とタグ系のテーブル2つでまかなうお不法
  • TOXI : コンテンツテーブル - 中間テーブル、タグテーブルの三種類からなる、TOXI等があります。

色々と調べた結果、TOXI方式が一番、納得感がありましたので、以降TOXI方を中心に説明していきます。

続きを読む

オートナンバーをランダムユニークな値に変換する

MySQLMariaDB)のオートナンバー型ってもちろん便利なのですが、数年システムを運用していくと、こんな課題が出てきてしまいます。 とあるWEBシステムで、規則性のあるデータを見つけてしまう。ちなみに、これ、セキュリティの話ではなく、あくまでも、外部から見て、規則性を隠蔽するって意味で説明します。

f:id:hit10231023:20180309104332j:plain

続きを読む

MySQLでジョブキューを管理する(Q4M)

いまいちキューの概念がわかっていないのだが、ようはあれかな?非同期で、データをやりとりするもの?え?違う???たとえば、受注処理の場合とか、受注が完了するまでアプリケーションが待つのではなく、キューという形で一連の受注プロセスからデーモンという形で切り離すことで、待ち時間フリーな非同期処理が行えるってこと。え?違う? ぜんぜんよくわかっていないのですが、インストールと簡単な操作方法について記載しました

f:id:hit10231023:20180309104332j:plain

続きを読む

容量無制限!! NFSからAmazon Elastic File System (EFS) に移行する

今までec2のインスタンスnfsサーバを立てて運用していましたが、ディスクの使用率が逼迫してくると、ディスクの追加作業が面倒な上に、時間がかかるので、今回、既存のec2 nfsサーバをEFSに移行しちゃおうと考えたわけです。

旧構成

f:id:hit10231023:20160919182637j:plain

上記、図の通りawsのec2でやってますよ!とはいいつつも、別にec2でなくてもいい構成ですね。一台の、ec2サーバにディスクを盛大に乗っけてnfsサーバにしているわけです。 これを、awsのefsに移行する手順を公開したいと思います

f:id:hit10231023:20180309123622p:plain

BLUENEXT ELANVITAL ワイヤレスステレオレシーバーAirCLIPII シルバー EVSH-03SR

BLUENEXT ELANVITAL ワイヤレスステレオレシーバーAirCLIPII シルバー EVSH-03SR

Pokémon GO Plus (ポケモン GO Plus)

Pokémon GO Plus (ポケモン GO Plus)

Fire タブレット 8GB、ブラック(第5世代)

Fire タブレット 8GB、ブラック(第5世代)

続きを読む

[AWS] elbにRapid SSL証明書をインストールする

elbの証明書インストールで予想通りハマったので、来年の更新のために、ログを残しておきます。このあたり、すごく苦手でアレなのですが、elb配下のWEBサーバに証明書を設定するわけではなく、elbそのもの証明書をインストールするのねって当たり前か。。そりゃ、そーですよね。elbの配下にwebサーバが、100台ぶら下がってたら、100台に証明書インストールするんかい!ってね。

f:id:hit10231023:20180309123622p:plain

てなわけで早速、設定方法を記載していきます

ラカントS 顆粒 800g

ラカントS 顆粒 800g

ブルガリ プールオムエクストレーム オーデトワレ 100ml

ブルガリ プールオムエクストレーム オーデトワレ 100ml

続きを読む

gnomeを後からインストールする方法

ちょっとX-windowが必要になってので、証跡がてらメモします。必要最低限の手順しか入れていないので環境によっては、これだと全然だめかもしれません

f:id:hit10231023:20180308234003p:plain

ConoHaカード 5,000円 【VPS用プリペイドカード】

ConoHaカード 5,000円 【VPS用プリペイドカード】

続きを読む

owncloud client linuxのインストール

owncloudってご存知ですか?一言でいえば、DropBoxオープンソース版です。対応するOSは、IOS,Androd,windows,macosそしてlinux (gnome)です! 自分でサーバを立てて運用することができますので、事実上、利用可能容量は、サーバで設定したディスクをすべて使えるといった感じですね。dropbox等にある、XXGB制約などは、とっくにクリアしております

f:id:hit10231023:20180309124433p:plain

今回、急遽linux環境でowncloudが必要になったので、インストール手順を書きます

続きを読む

きっと役に立つ!MySQL,MariaDB ストアドプロシージャ・ストアドファンクションテンプレート

MySQLおよびMariaDBにおいて、ストアドプロシージャを作成するときにいちいち、探しまわる時間がもったいないので、テンプレート的なものを用意しました、基本的、コンソールにコピペで行けるようにしておりますのでご自身の環境で作成する際のサンプルにご利用ください

f:id:hit10231023:20160622013126j:plain

f:id:hit10231023:20180309104332j:plain

RICOH THETA S 360度 全天球カメラ 910720

RICOH THETA S 360度 全天球カメラ 910720

[rakuten:murauchi-denki:72891916:detail]

続きを読む

bashで配列を作成しループする方法

bashで配列を作成しループする方法

いつも忘れてしまうのでメモ・・

配列のテーブルを作成して、それをループさせる方法です。配列ファイルは、別ファイルにさせて、それをインクルードさせる方が便利かもしれません。

f:id:hit10231023:20180308234003p:plain

helthknit ヘルスニット バックル バックパック リュック リュックサック HKB-1063 メンズ レディース ユニセックス カジュアル 鞄 通勤通学 カジュアル 旅行 アウトドア ブラック 黒

★★6/16 現在 なんと!? 498円 契約事務手数料も無料です!★★

続きを読む

mysqlのconcatを||(パイプ)で対応できるようにしよう

文字列結合にいちいちconcatなんていう関数を使うのはめんどくさい、且つわけがわからなくなるので、パイプ(||)でconcatと同様の操作がおこなえるように変更するtipsです

f:id:hit10231023:20180309104332j:plainf:id:hit10231023:20180309103851j:plain

UBTECH Jimu Robot Explorer Kitプログラミング 学習ロボット

UBTECH Jimu Robot Explorer Kitプログラミング 学習ロボット

続きを読む

mysqlアカウントで、コンソールにログインする方法

MySQL5.5からMaria10.0に変更したら、いつの間にか、linuxコンソールにてrootから、su - mysql ができなくなってしまいました。そちらを、su - できるようにした対処方法をメモします

f:id:hit10231023:20160510153222j:plain

こんなエラーになってしまいました。

"This account is currently not available."

Simplism iPhone 6/6s [NUNO] ファブリックケース マルチストライプ TR-FCIP154-MS

Simplism iPhone 6/6s [NUNO] ファブリックケース マルチストライプ TR-FCIP154-MS

f:id:hit10231023:20180309104332j:plain

続きを読む

目指せ手ぶらインフラエンジニア!!になるために必須なiPhoneスマホアプリ

f:id:hit10231023:20160530150609j:plain

インフラエンジニア!っていうと、

24時間365日待機しており サービス維持のために、ところ構わずPCを持ち

心休まることなく生活しているエンジニア

という印象を持っています

そんなインフラエンジニアの負荷を下げるために、少なくとも、重たいPCは持たないでスマホだけで、すべて操作できるアプリをチョイスしてみました。

完全手ぶらではないですが、すくなくとも負担をかけないために・・・

私は、これで、PCをほぼ持ち歩かずにインフラ対応ができるようになりましたが、画面が小さすぎて目がつぶれました。

本当は、Androidでチョイスしようと思ったのですが、アプリの選択肢が多すぎてやめました。いつか書きます。

大きくわけて以下の3つがあれば、iPhoneだけで運用できます

・サーバの状態を把握できる ・サーバのコンソール操作が行える ・開発エンジニアとリアルタイムでやり取りができる

この3つさえ網羅していれば、スマホだけ確実に持ち歩くようにすれば問題ないです。

今回は、iPhone限定で話をしたいと思います。同じApple製品のiPhone PLUSや、iPadとか、画面大きいほうが操作しやすいよね?とか思いがちですが、そもそも大きなものもつと逆に、外にもっていくのがめんどくさい件になるので、今回これらは除外しております。

iPhone 5s 16GB au [ゴールド]

iPhone 5s 16GB au [ゴールド]

アップル iPhone 5s 16GB docomo [スペースグレイ]

アップル iPhone 5s 16GB docomo [スペースグレイ]

※ わかっているとは思いますが、スマホだけでは、ハードウェアの設置はできませんので、あくまでも、サーバを設置して、これから運用していく人向けの話です(笑

それでは、さっそく紹介したいと思います

このエントリーをはてなブックマークに追加

続きを読む

IPhone アプリ: SSLエラーが発生してから対応したまでの話

f:id:hit10231023:20160526122842j:plain

本日IPhoneアプリケーションエンジニアさんから以下のようなエラーが出て、ファイルがダウンロードできなくなったという連絡を受けました

エラーログ内容

長いので改行しています

2016-05-25 17:56:45.398 TESTAPP[719:391253] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9801)
2016-05-25 17:56:45.422 TESTAPP[719:391073] [Error] GET '(null)' (0) [nan s]: 
Error Domain=NSURLErrorDomain Code=-1200 "SSLエラーが起きたため、サーバへのセキュリティ保護された接続を確立できません。" 
UserInfo={_kCFStreamErrorCodeKey=-9801, NSLocalizedRecoverySuggestion=それでもサーバに接続しますか?, 
NSUnderlyingError=0x15f0f2930 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" 
UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9801, 
_kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9801}}, 
NSLocalizedDescription=SSLエラーが起きたため、サーバへのセキュリティ保護された接続を確立できません。, 
NSErrorFailingURLKey=https://cdn.sslsitetesttest.com/files/abc.mp4, 
NSErrorFailingURLStringKey=https://cdn.sslsitetesttest.com/files/abc.mp4, 
_kCFStreamErrorDomainKey=3}

特に、こちらのnginxの設定は変更していないし、アプリケーションの問題なんじゃなの?なんて疑いつつ、調査を開始することしました。

hit.hateblo.jp

nginx実践入門 (WEB+DB PRESS plus)

nginx実践入門 (WEB+DB PRESS plus)

食べる!SSL! ―HTTPS環境構築から始めるSSL入門

食べる!SSL! ―HTTPS環境構築から始めるSSL入門

OpenSSL―暗号・PKI・SSL/TLSライブラリの詳細―

OpenSSL―暗号・PKI・SSL/TLSライブラリの詳細―

続きを読む

MySQLのrootアカウントが消えてしまった!!そんなときの復旧手順

f:id:hit10231023:20160523181920j:plain

何が起きたのかさっぱりわからないのですが、MySQL(MariaDBのパスワードがrootから何から消えてしまった。。 なぜ消えたのかは置いておいて、とりあえず、現状復帰しないことには、だーれも接続できない状態が続いてしまう・・これはまずい。

そんな場合のrootが消えた、もしくはrootのパスワードを忘れた場合の --skip-grant-tableオプションを利用した復帰方法をまとめました。mysqlとかmariadbのrootのパスワードを忘れたという対応事例は探すとあるのですが、 アカウントが丸ごと変わってしまったといい事例はあまりないのでメモ代わりに残しておきます。ちなみに今回、MariaDBでの話ですが、対応方法は、MySQLも同じかと思いますので、流用できるかと思います。

続きを読む

DBが遅い!そんな時・・MySQL スロークエリーからの索引チューニング〜 mysqldumpslow

f:id:hit10231023:20180309104332j:plain

MySQL/MariaDBでのパフォーマンス低下一番の理由がスロークエリーです。MySQLでサービスを展開しているデータベースやさんって、例外なくここをきにするのではないかな?と思います。そしてスロークエリーが発生した場合の一番の対策は、適切な索引(INDEX)を設定という部分になると思います。たぶんですが、ディスクをSSDにすればー。とか、CPUのクロックをあげればとか、そもそもこのサーバでは古いとか・・・の前にまず索引のチューニングをするのが先って感じです

でも、ここでは、遅いクエリーをどうチューニングすればいいのかの説明はしません。というか、私にはできません(笑)

ここでは、

  • スロークエリをログファイルとして出力させるためのMySQL (MariaDB)の設定方法 と
  • 出力されたスロークエリを集計するmysqldumpslow ユーティリティ について説明したいと思います

複数サイト運営に最適!1サイト85円のIP分散サーバー!【Class C】

MySQLトラブルシューティング

MySQLトラブルシューティング

続きを読む