タグ

関連タグで絞り込む (247)

タグの絞り込みを解除

mysqlに関するkarahiyoのブックマーク (145)

  • MySQLバージョンアップのベストプラクティス | Yakst

    MySQL Performance Blogの翻訳。Perconaのサポートエンジニアによる、MySQLバージョンアップの様々なパターンと、その利点・欠点、手順の解説。バージョンアップ実施前の、事前調査とテストが重要であるとの指摘も。 MySQLのバージョンアップ(訳注 : 原文ではupgrade、以下同じ)はどこかで必要になるタスクだし、我々Percona SupportでもMySQLバージョンアップのベストプラクティスについての色々な質問を受け付けている。この記事では、色々なシナリオにおけるMySQLバージョンアップの推奨できる方法に焦点を当ててみたい。 MySQLのバージョンアップはなぜ必要になってしまうのか?その理由は色々だが、新機能が必要、パフォーマンスの改善、バグ修正などがあるだろう。しかし、アプリケーションと組み合わせた上で事前に広範囲なテストをしておかないと、リスクの大きい

    MySQLバージョンアップのベストプラクティス | Yakst
  • MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ

    最近、Elastic BeanstalkやECSと戦っているSREチームの菅原です。 P5をやりたいのにPS3もPS4も持っていないので指をくわえて羨ましがっている毎日です。 この記事では、突然のアクセス増に備えるために、MySQLのスレーブを1〜2時間でスケールアウトできるようにした話を書きます。 MySQL on EC2 クックパッドは周知の通りAWSを利用していますが、主要なデーターベースについてはAmazon RDSではなくMySQL on EC2を使っています。 これは以下のような理由によるものです。 歴史的な経緯: AWS移行当時、RDSが無かった。また、移行後もしばらくはTritonnを使っていたため、RDSを使うことができなかった オンラインメンテナンスの実現: VPCルートテーブルを使った仮想IPとMHA for MySQLを使ってダウンタイムゼロのマスタDBの切り替えを

    MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ
  • gh-ost: GitHub's online schema migration tool for MySQL

    Engineeringgh-ost: GitHub’s online schema migration tool for MySQLToday we are announcing the open source release of gh-ost: GitHub's triggerless online schema migration tool for MySQL. gh-ost has been developed at GitHub in recent months to answer a… Today we are announcing the open source release of gh-ost: GitHub’s triggerless online schema migration tool for MySQL. gh-ost has been developed at

    gh-ost: GitHub's online schema migration tool for MySQL
  • Why is the estimated rows count very different in phpmyadmin results?

  • CVE-2016-6662 MySQL Remote Root Code Execution / Privilege Escalationについて - Qiita

    CVE-2016-6662 MySQL Remote Root Code Execution / Privilege EscalationについてMySQL 免責 取り敢えずわかっている範囲で書いただけなので、手元で再現やパッチの正当性は確認していません。 自己責任でどうぞ。 これ(2016/09/22 22:00)以降新しい情報が出てきても、おそらくもう更新しません。 CVE-2016-6662 についてはこちら MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響 - ITmedia ニュース oss-sec: CVE-2016-6662 - MySQL Remote Root Code Execution / Privilege Escalation ( 0day ) この脆弱性を再現させるために必要なもの (未検証) 5.5.52, 5.6.33, 5.7.15は影響を

    CVE-2016-6662 MySQL Remote Root Code Execution / Privilege Escalationについて - Qiita
  • MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響

    攻撃に利用された場合、root権限で任意のコードを実行され、サーバを制御される可能性が指摘されている。 米Oracle傘下のオープンソースデータベース「MySQL」に未解決の脆弱性が見つかったとして、セキュリティ研究者が9月12日に概略やコンセプト実証コードを公開した。サイバー攻撃に利用された場合、root権限で任意のコードを実行され、サーバを制御される可能性が指摘されている。 研究者のDawid Golunski氏が公開した情報によれば、MySQLの脆弱性は複数発見され、、中でも特に深刻な1件については、リモートの攻撃者がMySQLの設定ファイルに不正な内容を仕込むSQLインジェクション攻撃に利用される恐れがある。 この脆弱性は、MySQLの最新版を含む5.7系、5.6系、5.5系の全バージョンに、デフォルトの状態で存在する。現時点でOracle MySQLサーバの脆弱性修正パッチは存在

    MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響
  • MySQL 5.7.8以降で古いアプリが動かない場合の対処(sql_mode) - Qiita

    MySQL 5.7からはデフォルトの設定が色々変わっているので、5.6で動いていたアプリケーションが動かないケースがある。 主な理由はデフォルトのsql_modeの違い 5.7からはデフォルトでONLY_FULL_GROUP_BYやNO_ZERO_IN_DATEとかが設定されている。 ONLY_FULL_GROUP_BYが設定されていると、postgreSQLみたいにorder by句とgroup by句で同じカラムが指定されていないとエラーになる。 NO_ZERO_IN_DATEが設定されていると、careate_date = '0000-00-00 00:00:00'みたいなのでエラーになる。 5.7系でもバージョンによって細かくデフォルトのsql_modeが違うので注意が必要。 詳しくは公式のドキュメントを参照 <= 5.7.4 NO_ENGINE_SUBSTITUTION >= 5

    MySQL 5.7.8以降で古いアプリが動かない場合の対処(sql_mode) - Qiita
  • ルーク!MySQLではkamipo TRADITIONALを使え! | おそらくはそれさえも平凡な日々

    よくMySQLはゆるふわだから 値が勝手に切り詰められる エラーが起きずに変な値/日付が入る 不正なスキーマが入ってしまう など言われることがあります。ただそれは、そもそもの設定が悪いのです。(確かに昔デフォルトがゆるふわなのはいけなかったんですが) ということで、データベースには不正な値が入らないように設定はとにかく厳しくしておくのがオススメです。 じゃあどうするか。 MySQLSQL Modeによって、その辺りの制約をコントロールすることができます。以前、MySQLsql-modeで一番厳しいやつはTRADITIONAL、というのを書いたのですが、実はそれだけでは不十分で、TRADITIONAL,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BYとするのがより安心なようです。 これはkamipoさんに教えてもらいました。 @songmu TRADITI

    ルーク!MySQLではkamipo TRADITIONALを使え! | おそらくはそれさえも平凡な日々
  • 実録!サービスを止めずに Amazon Aurora へ移行した話 | 株式会社ヌーラボ(Nulab inc.)

    Photo via Visual hunt ヌーラボアカウントではつい先日、Amazon RDS for MySQL から Amazon Aurora へと移行しました。ここでは、その経緯と実際に実施した作業を簡単にご紹介させていただきます。 移行の経緯 ヌーラボアカウントは Backlog や Cacoo、Typetalk といったヌーラボのサービスへの認証機能を提供しています。もし認証機能が使えないとすべてのサービスを利用できなくなってしまいます。そのため、ヌーラボアカウントには常に認証機能を提供し続けられるような、高いアベイラビリティが求められています。 ヌーラボアカウントではこれまで RDS for MySQL を利用していましたので、MySQL 互換を掲げる Amazon Aurora は、リリースされたときから移行の可能性を検討をしてきました。Aurora のメリットについては

    実録!サービスを止めずに Amazon Aurora へ移行した話 | 株式会社ヌーラボ(Nulab inc.)
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 8.11.4 メタデータのロック

    MySQL では、メタデータロックを使用して、データベースオブジェクトへの同時アクセスを管理し、データの一貫性を確保します。 メタデータのロックは、テーブルのみでなく、スキーマ、ストアドプログラム (プロシージャ、ファンクション、トリガー、スケジュール済イベント)、テーブルスペース、GET_LOCK() 関数で取得されたユーザーロック (セクション12.15「ロック関数」 を参照)、および セクション5.6.8.1「ロックサービス」 で説明されているロックサービスで取得されたロックにも適用されます。 パフォーマンススキーマ metadata_locks テーブルは、メタデータロック情報を公開します。この情報は、ロックを保持しているセッションや、ロックを待機してブロックされているセッションなどを確認する場合に役立ちます。 詳細は、セクション27.12.13.3「metadata_locks

  • MySQL 5.6登場!!新機能速攻レビュー

    現在、米国で行われているMySQL Conference & Expoにあわせて、新しい開発版であるMySQL 5.6が発表された。MySQL 5.5における新機能もかなりのものだったが、MySQL 5.6の進化は質・量ともに勝とも劣らない内容となっている。そこで、今日は簡単に、MySQL 5.6で追加された新機能の概要について見てみよう。開発版なので利用にあたっては十分な注意が必要(予期なく予定が変更される可能性あり)だが、次期正式版のリリースに向けて是非試してみて欲しい。 InnoDB関連MySQL 5.5で大幅な進化を遂げたInnoDBだが、その勢いはまったく衰えることを知らない。性能の強化だけでなく、痒いところに手が届く便利な機能が追加されている。 ダーティページのフラッシュをするスレッドが独立した。以前はマスタースレッド内でフラッシュが行われていたが、スレッドが独立したことによっ

    MySQL 5.6登場!!新機能速攻レビュー
  • MySQL 5.6 のオンラインDDLについて調べた - takatoshiono's blog

    今更だけど MySQL 5.6 ではオンラインDDLの機能が追加されている。今日はこのオンラインDDLについて勉強したことを書いてみる。 MySQL のマニュアル MySQL :: MySQL 5.6 Reference Manual :: 14.11 InnoDB and Online DDL にいろいろ書いてある。いまから書くことはこのマニュアルから得た知識が元になっている。 DDL てなによ? データではなく、テーブル自身を操作するためのSQL文のこと。CREATE, ALTER, DROP, TRUNCATEなど。オンラインDDLではCREATE INDEX, DROP INDEX, ALTER TABLEに適用される。 http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_ddl 5.1 までの ALTER TABLE

    MySQL 5.6 のオンラインDDLについて調べた - takatoshiono's blog
  • DB移行を支える技術

    MySQL Casual Vol5 LT資料 http://www.zusaar.com/event/1086003

    DB移行を支える技術
  • もしもデータベースサーバがクラッシュしたら

    人の作ったものは完璧ではない。完璧でないものはクラッシュする。故にデータベースはクラッシュする。サーバハードウェアの故障、OSのクラッシュ、データベースそのもののバグなど原因は様々であるが、永遠に停止することなく動き続けるRDBMSというものは存在しない。もちろん数年間無停止で問題が出ない場合もあるが、クラッシュするときはするので対策が必要である。もしもの時に備えて抜かりないのがスマートなオトコのスタイルである。データベースのご利用は計画的に。 と思ったそこのアナタ!!人生そんなに楽ではありません。 もちろんRDBMSはトランザクションのDurabilityを保証しているので99%の場合はそれでOKだけど、それはCOMMITが成功した場合の話。COMMITは大抵の場合高速な処理であるが、それでも処理にかかる時間はゼロではない。アプリケーションがデータベースサーバにCOMMITを送信してから

    もしもデータベースサーバがクラッシュしたら
  • MySQL :: MySQL 5.6 リファレンスマニュアル :: 19.6.4 パーティショニングとロック

    MySQL 5.6.5 以前では、DML または DDL ステートメントを実行するときにテーブルレベルロックを実際に実行する MyISAM などのストレージエンジンの場合、パーティション化されたテーブルに影響するそのようなステートメントがテーブルに全体としてロックを適用していました。つまり、ステートメントが完了するまですべてのパーティションがロックされました。MySQL 5.6.6 はパーティションロックプルーニングを実装し、これによって多くの場合に不必要なロックが排除されます。MySQL 5.6.6 以降では、パーティション化された MyISAM テーブルに対して読み取りまたは更新を行うほとんどのステートメントで、影響を受けるパーティションのみがロックされます。たとえば、MySQL 5.6.6 より前は、パーティション化 MyISAM テーブルからの SELECT でテーブル全体がロック

    karahiyo
    karahiyo 2016/02/09
  • MAMP, MySQLの起動エラーに対処

    MAMPのMySQLが突然起動しなくなった。 mysql_error_log.err を見るとInnoDBが起動できないのが原因の様子。 [ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. [ERROR] Unknown/unsupported storage engine: InnoDB [ERROR] Aborting

    MAMP, MySQLの起動エラーに対処
  • MySQL 5.7.11でdefault_password_lifetimeのデフォルトが0になるらしい!

    MySQL 5.7.11でdefault_password_lifetimeのデフォルトが0になるらしい! 日々の覚書: MySQL 5.7.4で導入されたdefault_password_lifetimeがじわじわくる の公開以来大反響をいただいていた (ブクマ がすごいことになっていて、思わず ばぐれぽ にブクマのリンクを貼り付けたほど)default_password_lifetime が。 5.7.11でついにデフォルト0になる!!! やった!!! やったよ!!! ドキュメントはもう"default: 0 (>= 5.7.11)"の記載になってる。 これで、 MySQL 5.7にアップデートしてから 360日後にやってくる _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄ はなくなりました! (∩´∀`)∩ワーイ いいぞ○racle! "Affects me"してく

    karahiyo
    karahiyo 2016/01/14
    罠がひとつ減った
  • MySQLやSSDとかの話 前編

    MySQLSSDとかの話です 後編はこちら http://www.slideshare.net/takanorisejima/mysqlssd-56045479 後日談はこちら http://www.slideshare.net/takanorisejima/mysqlssd-70162609

    MySQLやSSDとかの話 前編
  • MySQL5.5でパーティショニング使って時系列のデータを分散する - 256bitの殺人メニュー

    はい、乙カレーさまです。寒い日が続きますね。 そしてMySQLも続きそうな私です。 前回はトリガをやってみましたが、今度はパーティショニングをしてみます。 パーティショニングとは パーティショニングは、特定のカラム情報を使って、テーブルを論理的/物理的に自動で分ける事で管理を簡単にしたり、パフォーマンスを確保する機能のことです。例えば今回は、更新日時でパーティショニングを行うことで、特定期間のデータを削除する等の運用が簡単になります。 パーテションの設定 プライマリキーの設定 まず既存のテーブルの場合は最初にパーテションを行うカラムがプライマリキーが含まれていないといけないので貼り直します。 mysql> ALTER TABLE usermaster_cs DROP PRIMARY KEY, ADD PRIMARY KEY(user_id, upd_datetime); 新規テーブルの場合

    MySQL5.5でパーティショニング使って時系列のデータを分散する - 256bitの殺人メニュー