Database JUNKY

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

MySQL8 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11の対処方法について

MySQL5.7からMySQL 8.0にアップグレードしてしばらく経過したところ、じゃあ、MySQL8でのmy.cnfをいじってみようかと思ったところからが地獄の始まり。謎のエラーで起動しなくなってしまいました 2019-03-18T05:15:40.431335Z 1 [ERROR] [MY-012574] [InnoDB…

AWS ELB&NginxでIPアドレス直指定アクセスを拒否する方法でハマった・・どうやるんだろう?

AWS ELB(ALB)でIPアドレス直指定アクセスを禁止する方法ですが。。 例えば、www.abc.abcというドメインのELBの111.222.333.444だったとして、http://www.abc.abc にはアクセスを許可したいけど、http://111.222.333.444はアクセスを拒否したいなんてことない…

MySQL AUTO_INCREMENTカラムの変更方法

たとえば、こんなテーブルがあったとします。このテーブルってidがプライマリーキーです。 CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `seq_id` int(10) unsigned NOT NULL , `name` varchar(50) NOT NULL DEFAULT '', PRIMARY…

MySQL リモートからの接続時にMySQLプロンプトにユーザー名とホスト名とデータベース名に変更する方法

すごく大した話ではないのですが、複数のデータベースを保有している時、コマンド接続した際に、どこのDBサーバに接続しているかわかんなくなっちゃうことありませんか? 自分の場合、管理が良くないので、本番データベースに接続しているのか、テスト用のデ…

MySQL8でいつの間にか使えなくなったパスワード設定

MySQL8 以前のバージョンの時のユーザアカウント作成周りでは問題なかったのに、MySQL8になってたらやたらシンタックスエラーが出まくる状態の方は、以降を試してみるといいかもしれません(自分のことですが) いつの間にかMySQL8のユーザー周りとか権限周…

AWS route53でワイルドカードを利用したDNSレコードの作成そして・・優先順位はどうなるの?

route53しか使っていないので、自分の中ではroute53の機能としてメモを書きます(笑) 結論として、awsのroute53はワイルドカードでDNSレコードを作成できる!ことです(笑) 例えば・・、 52.5.71.100 というpublic ipを持つインスタンスがあったとして、 …

AWS S3のCORS設定がグレーアウトして編集できない場合の対処方法

S3のCORS構成エディタの編集ができない・・・なぜそうなのか理由はあるのだろうけど、僕にはさっぱりとわからないです。そして、以降のことをすることにより、特に原因がわからないまま、改善したので備忘録代わりに掲載します。 どこのプログラムなのかは別…

SQLで画像URLの拡張子のみ表示するSQL

まあ、これだけなんですが(汗)個人的に頻繁に使うのでメモ。 まず、文字列を、REVERSEで反転させて、最初に登場するドット(.)の位置までRIGHT関数で切り出す感じにしてます。もっとシンプルな方法がありましたら、どなたかご教授を(笑) 文字列関数を利…

2000円台でこの暖かさ! LIFEJOY 洗える 日本製 電気毛布 敷きタイプ買ってみました!

寒い冬、エンジニアな人が風邪、インフルエンザになりやすい季節になってきましたね。基本エンジニアな人たちは、頭は良いけど、体は弱い、いや、体力が低下するまで、お仕事にのめり込んじゃうのがいけないのだと思いますが(笑)せめて、寝る時くらいは、…

【蘇るiMac】 iMac 2010の内臓ハードディスククラッシュをきっかけに外付けSSDハードディスクに変更し爆速になった記録

タイトルで爆速は大げさかな(汗) ここ数日、ブログを書こうとしたら、このmacの中から何かカリカリ音がして、なんだろう?と気になってはいたのですが、その翌日にさらにおかしくなり、文字を入力すると、変換の部分でピタっと画面がとまるとか(笑)筐体…

MySQL SQLの検索結果をshellの変数に格納する方法

色々な書き方がありますが、私は以下のように書いてます。というほど書いてないので、必要な時にすっかり忘れるのが現実ですが。。 例えばこんなケースで書いてみます。 とあるテーブルの検索結果が0(ゼロ)件以外だったら、後続の処理を実行する

MySQL8 多段的なCTE表でアクセスログを集計するSQL

多段的にする必要は実はそんなにないのですが、apacheおよびnginx等のアクセスログ(テーブル)をカテゴリに分けて集計するSQLを作ってみました。 nginxのログをテーブルに格納する方法については、以前、ここにまとめました。(ちょっと古いか。。) hit.ha…

トイレの水が出ない!!修理の方法など SH381BA編

トイレの修理はお早めに! TOTOのトイレ(SH381BA)の修理します。はい!全然、技術系の話でもデータベースの話でもありません! 結果からいいますと、トイレの水が出なくなりました厳密にいうと、タンク内部で水漏れしている気が・・する・・ 幸いにも、自…

MySQL8 SQL Window関数とCTE表でデータクレンジングと名寄せを実現する

とあるデータのクレンジング、名寄せ作業をSQLだけで完結する上で、よくわからなくなってしまったので、メモします。 例えば、こんな定義とデータがあったとして。 定義 CREATE TABLE `artist_master` ( `Id` bigint(20) unsigned NOT NULL, `CreatedAt` dat…

MySQL LIKE JOIN というアウトローなクエリーを試してみる

こんなの不可能だろと思いつつやってみたら以外と出来たというクエリーについて紹介します。 JOIN のON句にLIKEを使うというだけなのですが、これが以外と使える場面があります。今回、音楽のアーティスト名周りでこの難解なSQLをどのように活用するかを考え…

プログラムは3日で忘れる私が再びpython3メモ pymysql

プログラムはちょっとやらないと忘れる。 数ヶ月前にやったはずなのに、いざ再開すると、同じところでつまづく。今回は MySQL接続で利用するpymysqlでのメモをします。エラートラップとか例外とかは、書いてません。ちゃんとかける方はこのページなんかみな…

python3 ディクショナリ型の要素アクセスで、階層がある要素のkeyerrorを回避する方法

例えば、下記のようなネスト(階層)があるディクショナリ型の一部要素を参照しようとしていたのですが (略) "datePublished": "2018-10-11", "byArtist": { "@type": "MusicGroup", "url": "https://yyyyy.zzzzzz/us/artist/abcdefg-gambino/466842536", "…

route53 ドメイン移管とDNS変更は意味違うよって話(お名前comから、route53にDNS変更をする)

たまにしかやらない DNS変更作業、いざやろうとすると、あれ?どうするんだっけ?ってなりませんか?少なくとも私はそうなりました。 今回、お名前comでドメインを登録したのですが、DNSは、aws route53のほうが管理しやすいので、切り替えようと考えました…

いまさらだけど、ltsvが超便利!

はじめltsvってapacheのモジュールかと思ってましたら・・そうじゃなくって、単純にLogFormatをラベル付きのログを出力する形式ってだけなんです。 でも、また、これが便利、たとえば、access.log等は、標準ではラベルが入っていないため、大量にある場合、…

MySQL HyperDB + Keepalivedを利用した、wordpress の負荷分散

当記事、2012年に書いた記事になりますので、hyperdbがあるかないのかもわかりませんが、当方で活用する案件が発生しましたので、再アップしました。 思っていたより簡単にできた、そして結果からいいますと、思っていたよりパフォーマンスがよく無かった記…

MySQLでいいね!(LIKE)機能のDB設計をしてみた!

いいねってなに? FACEBOOKですと、いいね、 Twitterだと♥のあれです。エンゲージメント率を高めるばかりではなく、記事の拡散にも効果を発揮しますよね。また、サービス運営者視点で話すと、話題が見つけやすくなりますよね。 ってなわけで、今度はいいね。…

mysql 文字列結合のconcat関数は||(パイプ)でスマートに書こう!

MySQLおよび、MariaDBでの文字列結合関数といえばCONCAT(コンキャット)です。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.5 文字列関数 文字列結合にいちいちconcatなんていう関数を使うのはめんどくさい、且つわけがわからなくなるので、パイプ(||…

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の記述方法

他のDBはよくしらないですが、MySQL系のSQLをSQL文中にユーザー変数を含めることができます。この手法を理解すると、洗練されたSQLを記述することができます。 変数の利用は、SET文を用いる方法と、SELECT ~ INTO を用いる2種類の方法があります 以降、そ…

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

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

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

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