【2022/2/26 追記】 主にはてブコメントで様々なご指摘を頂いたので、タイトルの修正&内容を一部追記しました。分かりにくいタイトルを付けてしまい申し訳ございません。ご指摘ありがとうございます。 もともと本記事は自分用のメモを兼ねて駆け出しエンジニアの人が数人参考にしてくれたらいいかな、程度の気持ちで書いたものでした。 現在はてなブックマークのテクノロジーカテゴリーで 1 位になっており、予想の 1000 倍以上の人に見ていただける記事になってしまいました。 今後も精進します、ありがとうございます! 特に理由もなくローカルに MySQL を入れて遊びたくなる気持ちって定期的に湧きますよね。 私は湧きます、半年に 1 回ぐらい。 業務ではフロントを触ることが多く、DB はそれほど触りません。 そのため久々に MySQL をローカルで立ち上げようとするといつも手順を忘れてしまっていて、なん
※本記事は筆者styprが英語で執筆した記事を株式会社Flatt Security社内で日本語に翻訳したものになります。 TL;DR Node.jsのエコシステムで最も人気のあるMySQLパッケージの一つである mysqljs/mysql (https://github.com/mysqljs/mysql)において、クエリのエスケープ関数の予期せぬ動作がSQLインジェクションを引き起こす可能性があることが判明しました。 通常、クエリのエスケープ関数やプレースホルダはSQLインジェクションを防ぐことが知られています。しかし、mysqljs/mysql は、値の種類によってエスケープ方法が異なることが知られており、攻撃者が異なる値の種類でパラメータを渡すと、最終的に予期せぬ動作を引き起こす可能性があります。予期せぬ動作とは、バグのような動作やSQLインジェクションなどです。 ほぼすべてのオンラ
Azure Database for MySQLで課金コストを節約する「停止/開始」機能が正式版に:Microsoft Azure最新機能フォローアップ(134) Azure Database for MySQLで2020年9月からプレビュー提供されていた「停止/開始」機能が正式版になりました。開発やテストのためにAzure Database for MySQLを利用している場合は、データベースの未使用時に停止することで、コンピューティング料金を節約できます。 Microsoft Azure最新機能フォローアップ Azure Database for MySQLのデータベース、未使用時は停止してコストを削減 「Azure Database for MySQL」は、フルマネージドMySQLデータベースを提供する「Microsoft Azure」のPaaS(Platform as a Serv
Azure Database for MySQLとは?主な機能や利用時の注意点を解説 Azur利用者が同サービスでもMySQLを利用したいと言う要望から生まれたのが、「Azure Database for MySQL」です。 システム管理を行う方にとって「サーバーの設定やバックアップなどのノンコア業務を効率化したい」と考えている方もいるのではないでしょうか。 マイクロソフトが管理するAzure Database for MySQLは、サーバーやバックアップ管理やパッチの更新を自動で行ってくれます。その分システム運用者は、データベースの設計やデータの管理に集中できるでしょう。 本記事では、Azure Database for MySQLの基本を解説するとともに、主な機能やメリットについて解説します。 【入門編】「NTT東日本がおすすめするクラウド導入を成功させるためのお役立ちマニュアル」のダ
はじめに mysqldumpを利用してデータをコピーする前に、予めデータの容量を確認したく、方法を調べました。 (mysqldumを利用したデータの移行方法はこちらの記事に記載しました。) 環境は以下の通りです。 OS: Ubuntu MySQL version: 5.6 方法 以下のSQLを実行することで、各DBのデータ容量を確認できます。 ## GB単位で取得 SELECT SUM(ROUND(((data_length + index_length) / 1024 / 1024 / 1024), 2)) `Total Size in GB` FROM information_schema.TABLES GROUP BY table_schema;
このビッグウェーブにいつ乗るの! 今でしょ! 元RX-7乗りの適当な日々 Linuxサーバがディスク容量不足になった!何か消さねば!ってなった時にどう対処するか tagomorisのメモ置き場 Linuxサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか iをgに変えるとorangeになることに気づいたoranieの日記 Cassandraサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか …と思ってたらMySQLバージョンも既に出た。けどめげない。かぶらないように書きます。というかタイトルはかぶらないように変えました(つд`) Y-Ken Studio MySQLサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか さてまず、MySQLで勝手に(?)増えるものといえば。 データファイル(.MYD, .MYI, .ibd, ibda
Zabbixのデータを格納するためにMySQLを使っています。 しばらく運用していると/var/lib/mysql/ibdata1のサイズが約1.5GBとなりディスク容量を圧迫していました。 $ sudo ls -l /var/lib/mysql/ib* -rw-rw---- 1 mysql mysql 5242880 2012-04-22 10:41 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 2012-04-22 10:41 ib_logfile1 -rw-rw---- 1 mysql mysql 1512046592 2012-04-22 10:41 ibdata1 $ ibdata1肥大化の対応 ibdata1は、MySQLのトランザクションセーフのストレージエンジンです。 InnoDB データおよびログファイルの追加、削除、またはサイ
はじめに やあ (´・ω・`) ようこそ、バーボンハウスへ。 このmysqlはサービスだから、まずsystemctl start mysqld して落ち着いて欲しい。 うん、「また」なんだ。済まない。 仏の顔もって言うしね、謝って許してもらおうとも思っていない。 でも、このタイトルを見たとき、君は、きっと言葉では言い表せない 「ときめき」みたいなものを感じてくれたと思う。 殺伐とした世の中で、そういう気持ちを忘れないで欲しい そう思って、この記事をかいたんだ じゃあ、注文を聞こうか。 というわけでmysqlをdisります。disるだけなので内容はありません。いいね? mysql には罠がいっぱい そうなんですよ罠がいっぱいなんですよ奥さん。 いやこれはおそらくmysqlに限った話ではないんですけど例えばこういうの! MySQLのチューニングなんてしたらパフォーマンス落ちるだけだし、デフォル
「MySQL Workbench」は、データ・モデリング、SQL開発、サーバ設定の総合管理、ユーザー管理、マイグレーションなどの機能を提供する統合型ビジュアル・ツールで、最新の「MySQL Workbench 6.0」では、先進的なホーム画面と合理化されたインターフェースによって、データベース管理や開発における、複数のタスクの統合を実現する。 また、行数は限られるものの多数の列を生成するクエリを使用したい場合に理想的な、クエリ結果を列/値ペアのリストとして視覚化する「クエリ結果の縦型表示モード」や、外部キーの参照行を削除するためのDELETEステートメントの作成タスクを自動的に実行する「カスケード型DELETEステートメント・ジェネレータ」を備えている。 さらに、ライブ・スキーマによって、統合型データベース・モデリング・ツールをスキーマの管理に一層役立つようにするとともに、スキーマに含まれ
[GDC 2012]Mobageのサービスを支えるデータベースシステムについて,ディー・エヌ・エー松信氏が解説 ライター:米田 聡 ディー・エヌ・エーの松信嘉範氏 GDC 2012では,日本のディー・エヌ・エーもいくつかのセッションを持っていた。本稿ではディー・エヌ・エーが展開するMobageのデータベースに関する「Scaling and Stabilizing Large Server Side Infrastructure」(大規模サーバーのスケーリングと安定化)と題されたセッションをレポートしてみたい。あまり派手な話題ではないので要点のみをお伝えするが,Mobageの裏にはこんな苦労があったのだ。 セッションを担当したのは,ディー・エヌ・エーの松信嘉範氏だ。松信氏の名はゲーム業界的には知られていないかもしれないが,Oracleエキスパートの称号を持ち,オラクルが手がけるデータベースサ
これだけ見れば大丈夫!ーMySQLパフォーマンス監視のツボ(クエリ編) こんにちは、インフラ担当新人の nob です。 サーバー監視ツールで MySQL を監視しているのにデータが多すぎて活用していない。という方はいませんか?その豊富なデータをパフォーマンス・チューニングに活用しない手はありません。今回はサーバー監視ツールのグラフを読み解いた実戦経験を元に、「これだけ見れば大丈夫」というツボをまとめてみました。 これだけ見れば大丈夫! クエリ編 3つのつぼと5つのグラフ (その1)監視ツールが何を見ているのか知る (その2)監視のキモ、グラフ3点セット (Questions, Lock Waits と Transaction Handler) (その3)グラフでチェックする SQL チューニング ( Select Type と Handler) シンプルでお勧め、サーバー監視グラフ化ツール
MySQL 5.1からデフォルトで有効になっている便利な機能としてプロファイリングというものがある。MySQL 5.0でも利用出来たのだが、実験的な機能という位置づけであり、搭載されていたのはGPL版のMySQL Community Server限定だった。MySQL 5.1からは全てのエディションでプロファイリングを利用することができる。 プロファイリング機能を利用すると、クエリの状態(特に状態遷移やリソースの消費状況)を詳細に分析できるのでとても便利だ。MySQLエンジニア必携の機能といって良いだろう。というわけでプロファイリング機能の使い方を説明しよう。 MySQLサーバにログインしたら、まずは次のようにしてプロファイリングを有効にする。 mysql> SET profiling=1; すると、クエリの情報が記録されるようになる。次に、分析したいクエリを実行する。クエリはなんでもいい
あけましておめでとうございます。今年もよろしくお願いいたします。 新年最初から注意喚起ですが、2011年12月31日をもってMySQL 5.0のプロダクトライフサイクルが終了しました。今後MySQL 5.0に対して新たなバグ修正やセキュリティ修正は提供されませんので、現在MySQL 5.0を利用している方はバージョンアップを計画されることをおすすめいたします。 オラクル社による買収以降、ソフトウェア製品のサポートポリシーは以下のウェブサイトで確認できるようになっています。 Oracle Lifetime Support Policy for Oracle Software MySQL 5.0:2011年12月まで MySQL 5.1:2013年12月まで MySQL 5.5:2015年12月まで (Extended Supportは2018年12月まで) MySQL 5.0のプロダクトライ
MySQL Casual Advent Calendar 2011 22日目の記事です。 いろんなAdvent Calendarの敷居を下げたり、下げ過ぎたりしているid:k12uです。 実はいろんなことに使えるみんな大好きmysqldump。 あるhost.db.tableのデータの一部を他のhost.db.table にカジュアルに移したいといったケースのために大変重宝しております。 意外とあまり知られていない "-w" オプションを使うことでSQLでおなじみの絞り込みができます。 -w 'row_id = 111' #重要ですこのような感じでデータの出力を確認し、OKならパイプで直接 mysqlコマンドに食わせることで簡単にデータコピーできます。 さてこんな便利な mysqldump ですがオプションを調べようとしてターミナルでmysqldump --help と打とうものなら大量の
MySQL :: MySQL 5.1 リファレンスマニュアル :: 15 パーティショニング http://dev.mysql.com/doc/refman/5.1/ja/partitioning.html 実験的にやってみただけでノウハウとして固まってはいないのですが、現状の知識をまとめてみたいと思います。 前提 MySQL 5.1以降 検証した環境は5.1.47 日付ごとにパーティショニング カラムは一意な"id"と作成日付の"created"があるとする 準備 idとcreatedを複合でプライマリキーにする パーティショニングの条件はプライマリキーに含める必要がある idがAUTO_INCREMENTであればPRIMARY KEY (id, created)の順のみ createdをTO_DAYS()してパーティショニングする 大枠と個別のパーティションの両方でTO_DAYS()す
MySQLのRANGEパーティションのお話です。 MySQL5.1からサポートされているパーティショニングですが、ログテーブル等、レコード数が多くなりがちなテーブルに日付でパーティショニングしてます。 最初から遠い未来までのパーティションを切るのは気持ち悪いし、長く運用されるサービスの場合は忘れる可能性もあるのでバッチを回すのがいいと思いますが追加する場合の手順と注意点です。 ・まずはパーティションを作成 CREATE TABLE `mura`.`test1` ( `date` DATE NOT NULL , `name` VARCHAR( 40 ) NOT NULL , `contents` VARCHAR( 255 ) NOT NULL , `created_at` DATETIME NOT NULL ) ENGINE = InnoDB PARTITION BY RANGE (TO_
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く