Database JUNKY

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

MySQL8

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…

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

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

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

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

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

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

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 まず、…

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

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

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

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

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

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

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

MySQL 8で(やっと)実装された、window関数が超便利です!! postgreSQLとほぼ同じことができます。 window関数とは 結果レコードを部分的に切り出した領域に集約関数をかけることができる、ものすごい便利な関数です。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 にリリースされ、以下の機能が更新、もしく…