タグ

mysqlに関するk-holyのブックマーク (190)

  • PacemakerでMySQLレプリケーション構成

    最近のmysqlリソースエージェントでは、MySQLデータベースをMaster/Slaveセットとして構成することができます。 DRBD同様、TakeoverによってReplicationのMaster/Slaveを入れ替えることが可能となります。 ということで、CentOS 6.4のPacemakerを使ってMySQLデータベースをMaster/Slaveセットとして構成してみました。 セットアップする環境は以下になります。PacemakerとCorosync一式はCentOS提供のパッケージをインストールしクラスター構成済みです。 1号機:pcmk11 (CentOS 6.4 x86_64) 2号機:pcmk12 (CentOS 6.4 x86_64) レプリケーションの設定 まずはPacemaker範囲外で、MySQLをインストールしてレプリケーションを構成します。ただしCHANGE

    PacemakerでMySQLレプリケーション構成
  • MySQLレプリケーションを安全に利用するための10のテクニック

    MySQLのレプリケーションは非常に簡単に使える割には応用の幅が広いので非常に人気のある機能の一つである。レプリケーションの応用分野は例えば、 バックアップ 参照系の負荷分散 HA(高可用性) ディザスタリカバリ(サイト間レプリケーション) BI(レポーティングetc) という風にとても多くのバリエーションがある。このブログを読んで頂いている皆さんの中にもレプリケーションを使っている方は多いのではないだろうか。ご覧の通りMySQLのレプリケーション機能はミッションクリティカル分野でも利用されているが、レプリケーションの使い方が適切でないとシステムの安定稼働に支障を来してしまってDBAやシステム管理者の肉体的、精神的負担が増大してしまう。逆にレプリケーションを堅牢に運用することが出来ればマクラを高くして眠れるというものだ。レプリケーションはMySQLの代表的な機能であるので、レプリケーション

    MySQLレプリケーションを安全に利用するための10のテクニック
    k-holy
    k-holy 2013/08/08
  • 5分で作るMySQL Cluster環境

    「MyNA(日MySQLユーザ会)会 2013年7月」http://atnd.org/events/40892 での発表資料です。Read less

    5分で作るMySQL Cluster環境
  • ORDER BY RAND()の代わりを実装する、あるいはMySQLでランダムにデータを取ってくる方法についてのメモ - Line 1: Error: Invalid Blog('by Esehara' )

    こんにちは。相変わらずBookableというサービスをこつこつとやっているのですが、前回に「ORDER BY RAND()を使うと重くなる」という話を書いたところ、知人から「それやめろ」という斧であったり、あるいは他の方面からアドバイスを頂きました(Thanks グニャラくん!)。 なんでORDER BY RAND()がダメなの?という話は、ちょっと息抜きに翻訳したものがあるのですが、まず問題としてMySQLの乱数を生成するコストが高いという問題がある様子。少なくとも全件に対して乱数を発行するし、そして並び替えも発生してしまうので、とにかく非効率であると。だからその辺はMySQLにまかせるのではなく、それを呼び出すプログラム側にまかせたほうが圧倒的に効率がよくなるようです。 例えば、RANDでやると、下のように件数が増えるにつれて負荷が膨大になっていきます。 djangoの場合、元々のOM

    ORDER BY RAND()の代わりを実装する、あるいはMySQLでランダムにデータを取ってくる方法についてのメモ - Line 1: Error: Invalid Blog('by Esehara' )
    k-holy
    k-holy 2013/07/10
    問い合わせのたびにランダムである必要があるのかどうか、要件を吟味したらそんなことはなかった…ということは多いですね
  • SQLインジェクションゴルフ - なんと3文字で認証回避が可能に

    昨日のエントリ「SQLインジェクションゴルフ - 認証回避の攻撃文字列はどこまで短くできるか?」にて、認証回避の攻撃文字列が5文字にできる(「'OR'1」)ことを示しましたが、@masa141421356さんと、やまざきさん(お二人とも拙著のレビュアーです)から、idとpwdにまたがった攻撃例を示していただきました。やまざきさんの例は、MySQL限定ながら、なんと3文字です。これはすごい。 @masa141421356さんの攻撃例 @masa141421356さんのツイートを引用します。 @ockeghem 大抵のDBでid=''OR' AND pwd='>' ' が通ると思います(id側に「'OR」, pwd側に「>' 」で6文字)。長さ0の文字列がNULL扱いされないDBなら最後のスペースを消して5文字です。 — masa141421356 (@masa141421356) June

    k-holy
    k-holy 2013/06/25
    MySQLの型回りはほんと罠が多いな…
  • MySQL Casual Talks vol.4 で マスタn対スレーブ1レプリケーション と mysql_config_editor について話したこと - do_aki's log

    マスタn対スレーブ1レプリケーション については、 vol.2、 vol.3 で話したことに加えて、 pt-online-schema-change と相性悪いという話をしました。 同じ内容だけど、少しずつ加えてるのですよ。 ただ、これだけだとあまりに内容が薄いので、もう一続けて話したのが mysql_config_editor についてです。 こちらは、暗号化じゃなくて難読化なのでファイルの扱いには注意しようね。という話をしました。 その日既に @matsukena さんのスライドで mysql_config_editor の話でてたのに、普通に解説してましたねorz (諸事情により @matsukena さんの話を半分ほど聞けなかったのです) マスタN対スレーブ1レプリケーションの作り方 〜あれから〜 from do_aki セキュアそうでセキュアじゃない少しセキュアな気分になれるm

    MySQL Casual Talks vol.4 で マスタn対スレーブ1レプリケーション と mysql_config_editor について話したこと - do_aki's log
    k-holy
    k-holy 2013/04/25
  • 続マスタN対スレーブ1レプリケーションの作り方

    2. do_aki (どぅーあき) |所属| > 株式会社もしも (ドロップシッピング・アフィリエイトASP) |仕事| > インフラ(サーバ管理)兼 Webアプリケーション開発 |出現| > 渋谷・山手線沿線 |特性| > PHPer http://do-aki.net/

    続マスタN対スレーブ1レプリケーションの作り方
    k-holy
    k-holy 2013/04/19
  • マスタN対スレーブ1レプリケーションの作り方 ~あれから~

    社内勉強会で Capybara 勉強会を開催したときの資料です. 詳細はブログに書いています. 社内勉強会で "PHP Application E2E with Capybara" という話をした - kakakakakku blog http://kakakakakku.hatenablog.com/entry/2016/01/09/142221

    マスタN対スレーブ1レプリケーションの作り方 ~あれから~
    k-holy
    k-holy 2013/04/19
  • PHP 5.5 で mysql 拡張モジュールが非推奨になり、将来において WordPress を筆頭にさまざまな CMS のアップグレード作業が必要になります

    PHP 5.5 で mysql 拡張モジュールが非推奨になり、E_DEPRECATED エラーが表示されるようになりました。将来の PHP のバージョンで削除されます。 mysql 拡張モジュールに依存する CMS を使ってサイトを運用している場合、将来、運用サーバーに導入されている PHP のバージョンの切り替えに備えて、 mysqli もしくは PDO に対応した CMS のバージョンへのアップグレードするか、別の CMS やウェブサービスに切り替える必要があります。 多くの PHP 製の CMS が共有ホスティングにインストールされており、共有ホスティングは比較的古い PHP のバージョンのサポートを続ける傾向にありますが、古い PHP のバージョンを使い続ける場合、PHP のバグやセキュリティの未対応、より新しい PHP のバージョンを最小バージョンとするライブラリや CMS を導

    PHP 5.5 で mysql 拡張モジュールが非推奨になり、将来において WordPress を筆頭にさまざまな CMS のアップグレード作業が必要になります
    k-holy
    k-holy 2013/04/11
    これは覚えておこう。社内では対応済みでも他が同様とは限らないし。レンタルサーバは5.3に留まってしまうところが多いかもなあ…
  • MySQL関数が推奨されていないので自作クラスをPDOで書き直した。 | jlamp

    <?php /************************************************************************ * * * PdoMysqlラッパークラス * * * ***********************************************************************/ define('PEAR_PAGER', 'Pager/Pager.php'); class PdoMysql { /* クラス内変数 */ private $dsn = NULL; private $dbh = NULL; public $param_page = 'page'; // ページ用のパラメータ名 private $hostname = 'localhost'; // ホスト名 private $username =

    k-holy
    k-holy 2013/04/04
    似たようなの作ってるので参考に。
  • mysql より psql の補完が好きなので MySQL のテーブルを PostgreSQL から操作してみたよ - 雑文発散(2013-01-27)

    ▼ [PostgreSQL][MySQL] mysql より psql の補完が好きなので MySQL のテーブルを PostgreSQL から操作してみたよ このところ MySQL の CUI であるところの mysql コマンドを利用しているんだけど、テーブル名などの補完機能が PostgreSQL の psql コマンドと違っていてウニャウニャした気持ちになっている。 だったら psql コマンドで MySQL のテーブルを操作できたらいいんじゃね?と思って、mysql_fdw を試してみた。 最近の PostgreSQL には Foreign Data Wrapper(FDW : 外部データラッパ)という機能があって、PostgreSQL の外部に存在するデータベースからデータを引っ張ってきたりできるようになっている。 mysql_fdw というのは、この FDW を使って「Pos

    mysql より psql の補完が好きなので MySQL のテーブルを PostgreSQL から操作してみたよ - 雑文発散(2013-01-27)
    k-holy
    k-holy 2013/03/11
    PostgreSQLの外部データラッパでMySQLのテーブルを参照。これでビュー作ったりできるのかな
  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
    k-holy
    k-holy 2012/11/07
    "コマンドが一回で終わるように、カラムやインデックスの追加・削除を一行で書く"
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
    k-holy
    k-holy 2012/09/12
    MySQLは文字型の扱いがかなり癖があって慣れてないとはまる、あとシーケンスがない、CHECK制約がない、関数インデックスがない、それに方言も多い。素人目に見ても結構差異はあるような
  • PHP で Reactor パターンを使った非同期 MySQL 問い合わせ | Born Too Late

    最近は非同期処理に興味があります。 Reactor パターンというのは、非同期処理の実装パターンのひとつで、例えば HTTP 問い合わせなんかで「読み込みが完了するのを監視しつつその他のタスクを進め、読み込みが完了したタイミングでその結果を処理する」みたいなヤツです。 例えば Node.js では Reactor パターンを使ったプログラミングが比較的簡単に行えます。 PHP でも同じことをやりたい、というときには React というフレームワークがあって、少し前に話題になりました。 PHPでもリアルタイムWeb。node.phpReact」 現状 React ではファイル I/O やソケット通信を非同期に行えるようになっております。 が、MySQL で非同期処理を行う方法は今の所提供されていません。 PHP でも mysqli_poll を使えば非同期に MySQL にクエリを投げられ

    PHP で Reactor パターンを使った非同期 MySQL 問い合わせ | Born Too Late
  • MySQL :: MySQL 5.6 リファレンスマニュアル :: 6.2.7 アクセス拒否エラーの原因

    MySQL サーバーへの接続を試行したときに問題が発生した場合に問題を修正するために実行できる一連のアクションについて、次の項目で説明します。 サーバーが実行中であることを確認します。そうでない場合、クライアントは接続できません。たとえば、サーバーに接続しようとして次のいずれかのようなメッセージで失敗した場合、サーバーが実行中でないことが 1 つの原因であることがあります。 shell> mysql ERROR 2003: Can't connect to MySQL server on 'host_name' (111) shell> mysql ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) サーバーは実行しているが、サーバーが待機しているのと異なる TCP/I

    k-holy
    k-holy 2012/08/09
  • http://www.mysqlpracticewiki.com/index.php/MySQL%E3%82%B5%E3%83%BC%E3%83%90%E3%81%8C%E6%B6%88%E8%B2%BB%E3%81%99%E3%82%8B%E3%83%A1%E3%83%A2%E3%83%AA

  • 株式会社CAM

    CAMはエンタメコンテンツ、ビジネスバラエティメディア、ライフスタイルメディアを主軸に30以上のサービスを展開しています。エンタメコンテンツの分野では、国内外で圧倒的人気を誇るアーティストやアイドルグループとのパートナーシップを結び、オフィシャルファンサイトや動画関連サービスを運営しています。

    株式会社CAM
    k-holy
    k-holy 2012/07/26
  • MySQLお勉強メモ(サーバ設定項目) | きぬろぐ

    パラメータ概要 global : MySQL Server起動時に一括設定。キャッシュ機能提供が多い。 Session : セッション毎必要時に設定。バッファ機能。できるだけ使われないようにクエリチューニングされることがポイント。 メモリ使用量 = glogal + session x 最大接続数(max_connections : デフォルト 100 + 1(SUPER権限専用)) InnoDBをメインに利用する場合、Innodb_buffer_pool : 50-80%程度は設定してもよい。 globalパラメータについて テーブルキャッシュ 概要については以下。 table_definition_cache(5.1.4以降) table_open_cache(5.1.4以前 table_cache) : テーブルをオープン状態にする。セッション毎に消費される。 table_open_

  • 限界までMySQLを使い尽くす!!

    どこまで出来るか?!やれるところまでやってやるぜ!!と、威勢が良いのは若い間だけの話。オトナのオトコは、攻めるときはとことん攻めるが自らの限界もわきまえて賢く振る舞うのがスマートってものである。というわけで、今日はMySQLのいろいろな限界についてまとめてみる。皆さんも是非MySQLの限界を知り、MySQLをもっとスマートに使って頂きたい。 SQL文の最大長 MySQLサーバーが実行出来るSQL文の最大長は、max_allowed_packetシステム変数で表される。max_allowed_packetの最大値は1GBである。max_allowed_packetの値はセッションごとにも設定可能なので、デフォルトではそこそこの値(16MBなど)に設定しておいて、必要に応じて大きな対を使うと良いだろう。 データベースの個数 データベースオブジェクトの個数に制限はない。データベースオブジェクトは

    限界までMySQLを使い尽くす!!
    k-holy
    k-holy 2012/07/06
    MySQLの様々な上限値
  • MySQLのメモリ設定を追求してみよう – OpenGroove

    (2015年1月追記:これは現時点で約5年前に書いた記事です。各種パラメータは名称や仕様が変更されている可能性があるため、最新の情報を参考にしてください) MySQLのメモリの話を考えていたら何が何だか分からなくなってきたので、my.cnfでの設定に絡めてまとめてみようと思う。そもそも、MySQLサーバにおいてMySQLのプロセスがトータルで使用するメモリは、どれくらいに見積もっておけばいいだろうか。参考書やネット上では以下のような計算式が紹介されている。 max_connections x [スレッド領域用メモリ合計値] に、以下をプラス。 [グローバル領域用メモリ合計値] DB専用サーバの場合だとこの値をマシン搭載メモリの8〜9割くらいにする、と想定するのがひとつの指針となるようだ。しかし32bitLinux OSの場合は2〜3GBまでの制限があるため、搭載メモリがそれ以上あったとし

    k-holy
    k-holy 2012/07/06
    MySQLのメモリ構成図