Database JUNKY

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

MySQL SQLとbashヒアドキュメントをうまく使いこなそう!!

MySQLとヒアドキュメントをうまく使いこなされば、さくっとSQLをファイルを作ることができます。はじめは戸惑いますが慣れれば簡単です。数百回はやったかも(^^;) ヒアドキュメント(heredocument)自体は、MySQLとはまったく関係のない話、そもそもbash…

ec2 rootから特定のユーザーに成り代わってシェルやコマンドを実行する(runuser)

意外と知らなかったです。 root以外のアカウントから、rootに成り代わって実行はいくつかあるんですが、 rootからroot以外のアカウントに成り代わって実行する方法ってどうするんだろう?って 例えばこんなケースです [root@]# aws ec2 describe-instance-st…

MySQL 結局、索引の最大長っていくつなの?を考える Specified key was too long; max key length is 3072 bytes

MySQL8.0の話ですので、以前のバージョンの話とはちょっと変わってしまうかもしれませんが、テーブルの作成で、ものすごくしょうもないことでハマってしまいました。 ERROR 1071 (42000): Specified key was too long; max key length is 3072 bytes まず、…

aws s3の利用料節約を考える:データ転送量を減らす!

awsにて、動画共有サイト、画像共有サイトでもそうだと思いますが、ec2インスタンスのコストよりかかるのが、ずばり!転送料です。一部のサービスでは、ec2のインスタンスコストよりデータ転送料金のほうがコストがかかっているという話をよく聞きます たと…

MySQL パーティショニングで高速クエリーを実現!!

MySQL(MariaDB)には、レンジパーティションってものがありまして、うーなんでしょ?ある規則にしがったデータをおのおののデータファイルに振り分けてくれるストレージエンジン的なものです。 データ領域が分割されるため、大量のデータを処理することによる…

MySQL 変数を利用したSQLの記述方法

ソニー SONY ワイヤレスヘッドホン WH-CH510 : bluetooth / AAC対応 / 最大35時間連続再生 2019年モデル ブルー WH-CH510 L出版社/メーカー: ソニー(SONY)発売日: 2019/10/05メディア: エレクトロニクス 他のDBはよくしらないですが、MySQL系のSQLをSQL文中…

これはすごい!mariadb10 でマルチソースレプリケーションでデータベース統合!

MariaDBでマルチソースレプリケーション 私的に待ちに待ったあの機能が追加されました。それは、マルチデータソースレプリケーション、mariadb10.0から実装されるという話は知っておりましたが、ようやく触る機会がきたので試してみようと思います。 余談で…

aws ec2インスタンス起動時に、自作shellを自動実行する方法

あ、別にawsでなくてもいいのですが、そしてshellでなくても良いのですがw よくあるかどうかまではわかりませんが、アプリケーションを手動で起動して待機させる系統のものって、インスタンスを再起動さける時に、あら。動いてない。。。なんてことがありま…

aws cliコマンドをマスターしてブラウザいらずになろう!

いまさら感はありますが、AWSコンソールは便利ですが。。数が増えると、にっちもさっちもいかなくなるので、コマンドで実行する方法を備忘録代わりにメモします。 ec2インスタンスを停止する、主な理由って私的には、インスタンスタイプの変更をすることで、…

bashで選択メニューを出す(入力プロンプト)

よく、コンソールで何か実行する時に、(y/n)とかあるじゃないですか?あれがかっこよくてどうやるのか調べてみました 結果から先にいいますと、read というコマンドを使うっぽいです -pのオプションを付けると、プロンプトのメッセージを自由に設定すること…

MySQL8.0 : 新しく追加されたJSON関数サンプル

無事、システムもMySQL 8.0化が成功し、じゃあ今後、どう活用していこうと考えた時に、まずやったのが、WITH句なんですが、 hit.hateblo.jp 他にもいっぱい機能がアップされた部分があって、その中で、今回JSONで追加された関数を主に試してみました。 今回…

ec2 t3インスタンスでコストを大幅に下げましょう!

ec2でこっそりt3インスタンスでリリースされていました汗 全てではないかと思うのですが、tXXの数値が上がるたびに基本的には、なにかしらの機能アップと、コストのダウンが期待できます。昔のインスタンスのままじゃないと動かないから。。。ってシステムは…

NagiosのアラートをLINEに即座に通知&スマートウオッチ連動する方法

nagiosのアラートをlineに通知する方法をまとめました。インフラの設計、および運用管理をしていると、かならず発生するのが、システム障害です。その障害は、寝ている時であろうと、ごはんを食べている時であろうと、はたまた休日であっても発生します。イ…

AWS ELB だけでwwwあり・なしを統合!そして全てhttpsに統一する方法を教えます!

nginxでのの方法については、わかったのですが、ELBを挟んだ場合は、どこでどのような設定をする必要があるのか、、頭がごちゃごちゃになりハマったのでここで整理します やりたいことは、以下の通り http://www.test-test-abc/ → https://www.test-test-abc…

iPad+ハードウェアキーボード仕事で使えるか検証!

ipadでインフラ作業(コンソール作業)がしたかったため、とうとう外付けキーボードを購入してしまいました。 まあ、毎年 ①タブレット購入:ノートPCを持ち歩くのではなく、タブレットをもちあるきたい(軽量化) ↓ ②外付けキーボード購入:キーボードがない…

MySQL なければINSERT、あればスキップ(IGNORE〜)のおすすめ

かなり前に、なければINSERT、あればUPDATEというの書きました。 hit.hateblo.jp しかしながら、現状で運用でもっとも活躍できるのは、IGNOREの方だと思います どのようなケースで活用できるついて、サンプルを含め説明します プライマリーキーを更新 以下の…

MySQL8.0 新機能 WITH句、共通テーブル式(CTE)のSQLの書き方教えます!

MySQL8.0にするなら、WITH句で!共通テーブル式を使いましょう! MySQL8.0を使いたい理由は、CTEに対応したからなんです!! そもそも、MySQL 8.0を使いたかった理由って、共通テーブル式が実装されてからなんです! 私自身は、 IBM DB2でかなりお世話になり…

MySQL8 インビジブルインデックス(INVISIBLE INDEX)の勧め

その索引使われていますか? MySQLで長年運用しているうちに、パフォーマンスチューニングが必要になって、ほとんどが、チューニング効果の高い、索引チューニング(インデックスチューニング)をしていきますよね。そんでインデックスをぺたぺた張っている…

MySQLでの文字列の日付から日付形式に変換する方法(STR_TO_DATE)

毎回忘れる、MYSQLの文字列->日付変換についてメモしました。例えば、rssのフィード内によくある、publishedとかとか。。これを日付/時刻型に変換するにはどうすればいいか?なんていうのを例につらずらと書いていきます。 <pubDate>Sun, 29 Jul 2018 21:00:00 +0900</pubDate>

python3関連インストールもろもろメモ

あくまでも自分だけのメモですが、これだけは、いや、あくまでも私的な話ですが必須だろうと思うものしか書いてません。 今後他にも色々出てきそうですが、その時はその時で随時追記していくつもりです。 OSは、CENTOS 6x をベースに記載しましたが、まあ、U…

MySQLの変数をSQLのLIKEで活用する!

どうでも良い話ですが、設定した変数をLIKE検索で使う場合、%%ってどうすればいいの?というのがわからなかったのでメモしました。 少なくともこの書き方ではない模様 SET @ARTIST='Michael' ; SELECT artist_name FROM artist_master WHERE artist_name LIK…

超便利!! MySQL 8 window関数でグループ連番をふる

MySQL 8で(やっと)実装された、window関数が超便利です!! postgreSQLとほぼ同じことができます。 window関数とは 結果レコードを部分的に切り出した領域に集約関数をかけることができる、ものすごい便利な関数です。MySQL8.0で(ようやく)実装されまし…

MySQL mysqdumpで、Error 1412: Table definition has changed

mysqldumpする際にこんなエラーを食らったことはありませんか? 現在、 MySQL5.7のデータベースをMySQL 8.0に絶賛リストア中なのですが、mysqldumpが終わりそうなところでこのエラーがコンソールに出てきて疲弊してきました(汗) mysqldump: Error 1412: Ta…

MySQL8.0 td-agent mysqlが起動できない場合の対処方法 ibmysqlclient.so.20: cannot open

こんなエラーがでてtd-agentが起動できない現象が、MySQL8.0環境下のサーバで発生しました。 libmysqlclient.so.20: cannot open shared object file: No such file or directory 今回、MySQL5.7がインストールしているサーバをMySQL8.0に入れ替えたのですが…

MySQL 8.0にアップデート!注意すべき点

MySQL 8.0 バージョンアップしたら、速度が2倍向上!便利な関数が使える!!等、色々なメリットがあります。 ・・が、 通常のサービスでデータベースがメジャーバージョンアップしたからといってサービスを停止して、バージョンアップってしないかなー?って…

MySQL 異なるバージョン間でのmysqldumpおよびリストアについて

異なるバージョン、もしくは、異なる サーバ間で、データベースのdump (mysqldump) および restore リストアを実施した時に、リストア先にデータベースもテーブルもないはずなのに、キー重複(Duplicate entry)が起きたりしたことはありませんか? え?、な…

MySQL8.0環境でのmy.cnfの設定について

バージョン変わるたびにいつも混乱する。my.cnfの設定、、今回ももれなく混乱しました。 細かいところの説明は抜きにして、これで前バージョンの必要な設定は継承したかな?ってレベルまで作り込んでみました。 my.cnf (MySQL 8.0用) Innodbのチューニング…

10分でMySQL8.0をamazon linuxにyumでインストールする!!

amazon linuxにMySQL8.0をインストール! 知ってはいたけど、なかなか触る機会がなく、かつ、インストールを試したことすらしていなかったので、今回、インストールの手順をメモしました。 MySQL8.0は、2018/4/19 にリリースされ、以下の機能が更新、もしく…

MySQL データベース中に特定をカラム名を含むテーブルを検索する方法

例えば、User_Idというカラム名を含むテーブル名に何か変更をかけないといけないという運用が発生した場合、テーブル定義書に書かれているドキュメントを確認したりしますか?いやいや、とっても効率悪いので、information_schema.columnsを使いましょうよ!…

MySQL チューニングのど本命!索引チューニング

MySQLのチューニングで一番効果があるものは、パラメータのチューニングでもなく、はたまた、マシンのスペックでもなく、索引のチューニングです。私自身、サーバをスケールアウトしてみたり、パラメータをいじってみたりしてみましたが大した効果はないんで…