タグ

MySQLに関するHHRのブックマーク (101)

  • MySQL8.0でバイナリログを無効化する

    MySQLは8.0からデフォルトでバイナリログが有効になっています。 バイナリログを必要としない環境下(レプリケーションを使わない等)で 明示的にバイナリログを出力しない設定にしていない場合、意図しないバイナリログが生成され、 ストレージ容量を圧迫ストレージI/O性能の低下 のような問題が出てしまいます。 今回はMySQL5.7から8.0に変更して明示的にバイナリログを出力しない設定をせず、バイナリログが肥大化してしまったサーバのバイナリログ消去+無効化をやってみます。 サーバリプレース後の異常 サーバのリプレース後、短い期間でストレージ使用量が異常に増えているものがあると相談を受け確認してみました。 ディレクトリ毎のファイルサイズを確認して行った結果、MySQLデータディレクトリのサイズが非常に大きくなっていました。 binlog.003591~binlog.5184の1593ファイル、

    MySQL8.0でバイナリログを無効化する
    HHR
    HHR 2024/02/26
    mysql 8 log_bin docker imageだとデフォルトoffだった
  • MySQLの新認証方式について : DSAS開発者の部屋

    native_password authentication_string カラムの内容は、 native_password が salt なしの純粋な SHA1(SHA1(password)) の先頭に、 MySQL 4.1 以前の形式と区別するための目印として "*" をつけたものです。 mysql> create user t3 identified with 'mysql_native_password' by 'password'; Query OK, 0 rows affected (0.20 sec) mysql> select Host,User,plugin,authentication_string from mysql.user WHERE User='t3'; +------+------+-----------------------+--------------

    MySQLの新認証方式について : DSAS開発者の部屋
    HHR
    HHR 2023/05/23
    生パス(mysql_native_password)→ salt付与(sha256_password)→ 毎回パスを送らないのでパフォーマンス改善(caching_sha2_password)
  • ユーザーの一覧や設定された権限などユーザーに関する情報を取得する

    user テーブルには数多くのカラムがあり、ユーザー毎に非常に多くの値が格納されていることが分かります。 user テーブルのカラムの中でもよく参照されるのは ユーザー名のホスト部分以外が格納されている user カラムとユーザー名のホスト部分が格納されている host です。他にも使用している認証プラグインが格納されている plugin やパスワードの有効期限に関する項目、ユーザーに付与されている権限に関する項目などがあります。 それでは mysql.user テーブルからすべてのデータを取得して作成済みのユーザー一覧を確認してみます。すべてのカラムの値を取得すると見にくくなるので user カラムと host カラムの情報を取得します。

    ユーザーの一覧や設定された権限などユーザーに関する情報を取得する
    HHR
    HHR 2023/04/20
    よく忘れる…
  • Mysql 5.7* パスワードをPolicyに合わせるとめんどくさい件について - Qiita

    引用先: MySQL 5.7 Mysql 8.0が出たので、下記を追加しました。 要するにMEDIUMは文字列の長さを指定した長さにして、数字を使って、大文字、小文字を使って、さらに特殊文字を用いてパスワードにしてくださいとのこと、 これではログイン不安なので、 変更してみました。 mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | |

    Mysql 5.7* パスワードをPolicyに合わせるとめんどくさい件について - Qiita
    HHR
    HHR 2023/04/19
    5.7で開発用などでnon-passにしたいときなどに。
  • B TreeとB+ Treeの違い - Carpe Diem

    概要 インデックスに対してMongoDBはB Treeを採用し、MySQLのInnoDBはB+ Treeを採用しています。 どうして採用しているアルゴリズムが違うのだろう?と思って調べてみました。 主な違い B+ TreeはほとんどB Treeと同じですが、以下の点が異なります。 リーフノードとリーフノードを結ぶポインタがある データはリーフノードのみに保持する 具体例 言葉だけだと分かりにくいので、Visualizeするツールを使って具体例を表示します。 [1, 2, 3, 4, 5, 6, 8, 10, 15, 18]という数列に対し、Order: 3で作ってみます。 Orderは1ノードから出る枝の数のことです。 B Tree B-Tree Visualization B+ Tree B+ Tree Visualization 先程のB Treeと違って、データはリーフノードに持つの

    B TreeとB+ Treeの違い - Carpe Diem
    HHR
    HHR 2022/08/13
    絵的。わかりやすい。
  • 第163回 sysbench 1.0を使ってMySQLの負荷テストをする | gihyo.jp

    今回はsysbench 1.0を使ってMySQL負荷テストする方法を紹介したいと思います。 第26回 SysBenchを使ってMySQL負荷テストをする でsysbenchについてはすでに紹介していますので、sysbenchの概要などはこちらの記事をご参照ください。以前の記事ではsysbenchのバージョンは0.4.12であり、最新のsysbenchはオプションやコマンドなどが若干異なっています。そのため、以前の記事のアップデート版として最新のsysbenchで負荷テストする方法を紹介します。 インストール方法 各OSごとのインストール方法はInstalling from Binary Packagesをご参照ください。今回はCentOS7にsysbenchをインストールしてみます。 # curl -s https://packagecloud.io/install/repositor

    第163回 sysbench 1.0を使ってMySQLの負荷テストをする | gihyo.jp
  • MySQLが得意なこと、不得意なこと(仮)

    2021/12/17 Engineers in CARTA vol.2 #MySQL https://voyagegroup.connpass.com/event/231708/ 得意なことというより特異なことを紹介するコーナーになってしまった

    MySQLが得意なこと、不得意なこと(仮)
    HHR
    HHR 2021/12/18
    OLTPとOLAPで違うしそもそも金の問題もあるからなぁ。MySQLはPHPと共に築いたゆるふわ時代の闇を引きずっているのつらい…
  • SQLフォーマッターFor WEB

    今まで通りSQLの整形にお役立てください。 バージョンアップした際はページでお知らせしたいと思います。 2021/3/21追記 ・==が1トークンになるよう修正 ・[table]![column]が崩れないよう修正 ・cross join が崩れないよう修正 2019/7/1追記 ・カンマ整形前の場合にorder byはgroup byで桁ぞろえが有効にならないバグを修正 ・カンマ整形前の場合に、limit 1, 10が limit 1 , 10となるバグを修正 2018/8/28追記 ・ie11でlocalStorageが動作しなかったバグを修正 2018/8/27追記 ・localStorageに整形書式を保存するよう対応 2018/8/4追記 ・カンマ整形が前の場合、「桁ぞろえ」オプションを追加 コア部分に手を入れたため、おかしな動作をした場合はお知らせください。 2018/5/1

    SQLフォーマッターFor WEB
  • mysqldumpコマンドで "Unknown table 'COLUMN_STATISTICS' in information_schema (1109)" と怒られる原因と対策 - モヒカンメモ

    エラーメッセージ mysqldump コマンドでMySQL上のデータのバックアップを取ろうとしたとき、下記のようなエラーが出た。 mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = '$db_name' AND TABLE_NAME = '$table_name';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109) 原因 MySQL 8以降に付属するmysqldumpでそれ以前のMySQL 5.7とかのサーバに対してダンプを実行

    mysqldumpコマンドで "Unknown table 'COLUMN_STATISTICS' in information_schema (1109)" と怒られる原因と対策 - モヒカンメモ
    HHR
    HHR 2020/09/08
    --skip-column-statistics
  • MySQL - InnoDBのロック関連まとめ - Qiita

    メモ開放。InnoDBの行ロック関連について、それぞれの項目が必ずしも並列関係にあるわけではないが、以下のようにまとめていく。 排他ロックと共有ロック SELECT ~ FOR UPDATE SELECT ~ LOCK IN SHARE MODE 排他ロックと共有ロック 読み取りを許すかどうかの違い。排他ロックは対象行を全てのクエリからロックするため、UPDATEやDELETEなどの更新クエリはもちろん、SELECTなどの読み取りクエリも通さない。共有ロックは更新クエリを通さないが、読み取りクエリは通す。 (追記:排他ロックは分離レベルによってはSELECTを通すとのこと。 公式 ) 排他ロックは全てのクエリを通さず、共有ロックは排他ロックを伴うクエリを通さない、と言い換えたほうがいいかもしれない。 公式では共有ロックは同トランザクション内のselectを許し、排他ロックは同トランザクショ

    MySQL - InnoDBのロック関連まとめ - Qiita
    HHR
    HHR 2018/12/25
    行ロック関連のみ記載されている。SELECT ~ FOR UPDATE; 排他ロック。SELECT ~ LOCK IN SHARE MODE; 共有ロック。
  • https://engineering.mercari.com/entry/2017/12/18/deadlock

    https://engineering.mercari.com/entry/2017/12/18/deadlock
  • LINEのMySQL運用について 修正版

    Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)

    LINEのMySQL運用について 修正版
    HHR
    HHR 2018/09/21
  • MySQLでSELECT FOR UPDATEと行ロックの挙動を検証してみた - Continue(s)

    どうも、今日も今日とて野毛で飲みながらブログを書いている@0kawaraです。 今日は、普段あまり意識してこなかったMySQLのInnoDBでのロックの振る舞いについて色々実験してみました。(もちろん、きっかは自分がドツボにはまったから) ちゃんと理解するためには「共有・排他的ロックとは」って話や、「行ロックってつまりインデックスレコードロックだよね」などの話とか理解する必要があるんですが、それは github.com をちゃんと一読してもらえれば十分かと思います。 (というか、これが問題なく読めて理解できる人はこの記事読む必要ない….) 以下は上のドキュメント含め関連する記事などを読んで自分でInnoDBの行ロック周りについて、というかSELECT FOR UPDATEについて理解を深めるために手元で実験したことのまとめです。 技術的にちゃんとした理解を深めたい人は最後にまとめた参考サイ

    MySQLでSELECT FOR UPDATEと行ロックの挙動を検証してみた - Continue(s)
    HHR
    HHR 2018/09/18
    SELECT FOR UPDATEとLOCKING READの検証間違ってね?
  • モンストのサーバー負荷との戦い 〜あけおめ2018編〜 / bcu_30_server_9

    スマホアプリ「モンスターストライク」のサーバー負荷は、年末年始に1年のピークを迎えます。2018年元旦のサーバー負荷に立ち向かうために実施した対策の一例として、データベースサーバー(MySQL)を安全に水平分割した事例を紹介します。見積もりから計画、実施に至るまでを時系列で振り返ります。

    モンストのサーバー負荷との戦い 〜あけおめ2018編〜 / bcu_30_server_9
    HHR
    HHR 2018/04/23
  • MySQL 5.7 クライアントの新機能(?)

    ちょっと感動したMySQL 5.7.1 クライアント(mysqldではない)の新機能。 まずは取り敢えずこのBugs。 MySQL Bugs: #66583: Ctrl-C behavior violates principle of least astonishment http://bugs.mysql.com/bug.php?id=66583 mysqlコマンドラインクライアントに向かってCtrl+Cを叩くとmysqlコマンドラインクライアントが落ちるという、 ごくごく馴染みの動作に対するFeature Request。 MySQL 4.1.6からは--sigint-ignoreというオプションで(そんな昔からあったのか) SIGINTそのものを無効化してmysqlコマンドラインクライアントが終了しないようにできるものの、 これだとクエリを止めようと思ってもCtrl+Cで止まらなくな

    HHR
    HHR 2018/04/19
    56まではmysql --sigint-ignoreで57からはすっぴんで使う
  • 質の高いAPIを作るための7つの習慣

    今までのやり方を1つずつ改めて、どうやったら品質の高いAPIを素早く作れるのか。 受託を専門とする会社で、実際の仕事の中で改善していった取り組みについてお話します。 なるべくモダンなやり方で品質を落とさずにビジネスサイドからの要求に応えるにはどうしたら良いのか?

    質の高いAPIを作るための7つの習慣
  • DockerでサクッとDBからER図を作成する - Qiita

    SchemaSpyというDBのスキーマを解析してテーブルの一覧やER図を出力してくれるツールがあります。 このツールの公式Dockerイメージが公開されており、非常に使いやすいので紹介させて頂きます。 https://hub.docker.com/r/schemaspy/schemaspy/ コマンド docker run -v "$PWD/schema:/output" --net="host" schemaspy/schemaspy:snapshot \ -t <DB種類> -host <DBホスト名/IP>:<ポート> -db <DB名> -u <DBユーザー名> -p <DBパスワード> このコマンドを実行するとカレントディレクトリのschemaディレクトリに解析結果のHTMLが出力されます。 (コンテナは自動的に終了します) docker run のオプション -vオプションで指

    DockerでサクッとDBからER図を作成する - Qiita
    HHR
    HHR 2017/07/29
  • JJUG CCC 2017 Springで論理削除フラグをどうにかするための話をしてきました 【FOLIOスポンサー】 - itohiro73’s blog

    JJUG CCC 2017 Springで、「データ履歴管理のためのテンポラルデータモデルとReladomoの紹介」という話をしてきました。 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 from Hiroshi Ito 今回の登壇は、株式会社FOLIOのスポンサーセッションです!FOLIOについてはこちらの入社エントリー記事もご参考ください。Toggetterは下のリンクから。 togetter.com 世の中のみなさんが「論理削除フラグ」を使いたくなるモチベーションとしては、実は「削除」ではなく別のビジネスロジックを実装したいだけであることがほとんどだと思います。 たとえば論理削除フラグという名の死亡フラグ - @ledsun blogというエントリを参考にさせていただくと、下記のような要件の例があります。 ・社員が退職(・転

    JJUG CCC 2017 Springで論理削除フラグをどうにかするための話をしてきました 【FOLIOスポンサー】 - itohiro73’s blog
    HHR
    HHR 2017/05/22
  • データベースリファクタリングについて話をしてきた #OSO2017 - そーだいなるらくがき帳

    岡山にはオープンセミナー岡山と言う最高のイベントがあります。 okayama.open-seminar.org 昨日は id:t-wada さんや id:naoya さんの資料がホットエントリー入りしてました。 この登壇はそれと同じイベントになります。 その他の方も超豪華講師陣の中で、私が出来る精一杯の経験も踏まえたお話をさせていただきました。 speakerdeck.com この中で出て来る、データベースリファクタリングは当に素晴らしいです。 OracleベースなのですがMySQLだろうがPostgreSQLだろうが必ずためになるです。 ですが、このは既に廃刊になっており再販の予定もありません… 僕は後世に絶対必要なの一つだと思っているので再販のためにも皆さんの要望の声を上げていただけるとうれしいです。 そしたらもしかしたらが世に復活するかもしれません。 またSQLアンチパタ

    データベースリファクタリングについて話をしてきた #OSO2017 - そーだいなるらくがき帳
    HHR
    HHR 2017/05/17
  • mysqldiff を使って継続的に MySQL のデータベーススキーマの差分をチェックする - kakakakakku blog

    最近,環境ごとのデータベーススキーマの差分をチェックする機会があった.プロダクション環境とステージング環境ならまだしも,開発環境だと検証のために追加したインデックスがそのままになっていたり,開発が途中で止まってしまって日の目を見ることがなかったテーブルが残っていたり,そういうことって比較的あるのではないかなと思う.特に今の環境だと,マイグレーションの仕組みが整っていないという課題もあり,より一層,データベーススキーマに差分が出やすくなってしまっている. 今回は MySQL から公式に提供されている mysqldiff というツールを使ってデータベーススキーマの差分をチェックした. mysqldiff をインストールする mysqldiff は MySQL Utilities という MySQL の管理ツールパッケージの中に同梱されている.現在だと v1.6 が最新になっている. MySQL

    mysqldiff を使って継続的に MySQL のデータベーススキーマの差分をチェックする - kakakakakku blog
    HHR
    HHR 2017/04/03