タグ

mysqlに関するhardfloorのブックマーク (30)

  • MySQLのmy.cnfファイルサンプル

    MySQLのバージョン インストールされたMySQLのバージョンは以下のようになります。 名前 バージョン ダウンロード元 my.cnfサンプル 以下のサンプルを参照して、my.cnfファイルを作成してください。 # このファイルは MySQL 5.6を基準として作られてあります。 # http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html を参照しました。 [mysqld] ##-------------------------------------------------------------------- # mysqldの基設定 ##-------------------------------------------------------------------- # id は 1 から 2^

    MySQLのmy.cnfファイルサンプル
  • 2007/04/23-01、skip-character-set-client-handshake について - debian-etch に関するメモ(後、lennyへアップグレード)

    [カテゴリ:etch] [カテゴリ:all] [カテゴリ:mysql] ***************************** 2010/01/29 google で skip-character-set-client-handshake を検索すると、 いつの間にか、このページが1番目に表示されるようになりました。 正確性に欠けるかもしれないがもう少し書いておきます。 文字化けを解決するのに、 skip-character-set-client-handshake や SET NAMES を 使うのは、もはや正解ではありません。 このページの情報は、時系列に追記しているので、ページ上部の情報は正しくありません。最後まで読むことをお勧めします。 ***************************** 目次

  • innodb_log_file_size のサイズを変更するには - Enjoi Blog

    新年の大掃除という事でサーバのログアラートを眺めていたら、 mysql から innoDB 関連の以下のようなエラーがみつかったので修正する事に。 100101 2:50:34 InnoDB: ERROR: the age of the last checkpoint is 9433664, InnoDB: which exceeds the log group capacity 9433498. InnoDB: If you are using big BLOB or TEXT rows, you must set the InnoDB: combined size of log files at least 10 times bigger than the InnoDB: largest such row. エラー発生時間から大体何が起きたのか把握できたので、 innodb_log_f

  • ポートフォワーディングを使ってmysqlにつなぐ - PGメモ

    タイトルのままポートフォワーディングを使ってmysqlにつないでみます。 ssh -L 9999:127.0.0.1:3306 -N -f foo@var.jpL はローカルの設定するよってこと 9999がローカルサーバーでリスンするポート番号 127.0.0.1がリモートサーバ 3306がリモート側のポート番号です N が接続後のシェルプロンプトを出さない f がバックグランドで実行 fooがリモート側のユーザ 繋がったら mysql -u root --port=9999 -h 127.0.0.1これでvar.jpのローカルにあるmysqlを見に行くようになります ホストオプションをつけないと自分のローカルを見に行くので気をつけましょう

    ポートフォワーディングを使ってmysqlにつなぐ - PGメモ
  • MySQLで外部から接続するときにチェックする項目 - yummy-yummy

    サーバーにMySQLを入れたけど、外のマシン(ネットワーク)から接続できないよ!って時は以下の内容をチェックしてみる。 1. mysqldのuserテーブルの設定 以下コマンドでユーザの権限状態を確認。 $ mysql -u root mysql mysql> select user, host, password from user;権限が無い場合はGRANTコマンドで、外部からの接続を許可すること。 mysqlユーザの追加方法、GRANTの使用法等参照。 2.my.cnfのbind-address設定 my.confのbind-addressの設定を確認してみる。 $ vi /etc/mysql/my.cnf bind-address = 127.0.0.1 bind-address = (接続したいマシンのIPアドレス)追加したい接続先のIPを書いた「bind-address」を追加

    MySQLで外部から接続するときにチェックする項目 - yummy-yummy
  • MySQLの設定ファイル my.cnf をgithubにて公開しました & チューニングポイントの紹介 - blog.nomadscafe.jp

    YAPC::Asiaのスライドで予告していた通り、実際に弊社のいくつかのサービスで使っている my.cnf を公開しました。 github: https://github.com/kazeburo/mysetup/tree/master/mysql 今回、公開した理由はMySQl Beginners Talksの発表の中でも触れている通りです。MySQLのソースコード中に含まれるサンプルのmy.cnfが最近のサーバハードウェアや運用に合わなくなって来ているという状況で、自分の設定にイマイチ自信が持てていない人は少なくないはず。そこで各社秘伝のタレ的な my.cnf をOpen & Shareすることで、モダンなmy.cnfを作り上げる事ができるんじゃないかという考えの下、今回 github にて公開しました。 ファイルは4つあり、それぞれ MySQL 4.0、5.1、5.5、そしてテスト中

  • MySQLをさらに理解するために読んだ記事まとめ - $shibayu36->blog;

    最近MySQLの勉強をしていました。実践ハイパフォーマンスMySQLを読むべきという話を聞いていたのですが、かなり網羅的に書かれていて、今の知識ではどれが重要なのかわからない状態でした。そこで色々調べてみて、参考になる記事をいくつか見つけたので、少しまとめてみようと思います。 今回まとめた記事を読んで、大体以下のことが理解できました。 インデックスの使われ方とその構造(MyISAMとInnoDB) EXPLAINの詳しい使い方、見方 InnoDBの特性 ALTER TABLEの特性 レプリ遅延 まず最初に Webエンジニアのための データベース技術[実践]入門 (Software Design plus)posted with amazlet at 12.06.02松信 嘉範 技術評論社 売り上げランキング: 9767 Amazon.co.jp で詳細を見る 松信さんの書いた「Webエンジ

    MySQLをさらに理解するために読んだ記事まとめ - $shibayu36->blog;
  • MySQLでサブクエリ(エラー#1093を回避する方法)

    MySQLでもサブクエリーが使えることを思い出して、とあるプロジェクトで使ってみることにした。さくっと、以下のようなSQLを書くと・・・ INSERT INTO exam ( type, code ) VALUES ( 'A', ( SELECT IFNULL( MAX( code ) + 1, 1000 ) FROM exam WHERE type='A' ) ); #1093 - You can't specify target table 'exam' for update in FROM clause と怒られてしまった。 正直な話、SQLは得意というわけではないので、 最初はやっぱり無理?と思ってしまった。 が、気を取り直して「mysql 1093」でググってみると、答えのページを発見。MySQLだからではなく、SQL標準から見ても間違った構文なんだそうだ。 簡単に問題の説明をす

  • オトコのソートテクニック2008

    今日は仕事納めだったので、一年の締めくくりとしてMySQLにおけるソートの話でもしようと思う。 インデックスを利用しないクエリで最もよく見かけるもののひとつは、ORDER BYを用いたソート処理だろう。もし、ソート処理においてインデックスを用いることが出来れば、MySQLは結果を抽出してから結果行をソートするのではなく、インデックス順に行を取り出せば良いので高速にソート処理することが可能になる。特に、LIMIT句やWHERE句を用いて行の絞り込みを行う場合は効果が絶大である。しかし、ひとたびインデックスを利用できない状況に直面すると、たちまちテーブルスキャンが発生して性能が劣化してしまう。 例えば、100万行のレコードを格納したt1というテーブルがあるとする。そのテーブルに対して以下のようなクエリを実行した場合を考えよう。 mysql> SELECT col1, col2 ... colx

    オトコのソートテクニック2008
  • MySQLクイックチューニング

    使い方は至って簡単、ダウンロードして実行するだけ。 実行すると、MySQLへのログインIDとパスワードが聞かれる。入力すると、MySQLのステータスや変数、物理メモリ容量をチェックされ、その環境に合ったパラメータを提案してくれる。 % wget http://mysqltuner.com/mysqltuner.pl % perl mysqltuner.pl 適当に運用している環境ではすごい楽。デフォルトのmy.cnfでは物足りないけど、パラメータチューニングをExcelを使って統計情報を元にチューニングするのは面倒という人向け。 24時間以上運用していないと統計値が収束しないので、ある程度運用してから実行した方がいいです。

  • MySQL: Large VARCHAR vs. TEXT?

    I've got a messages table in MySQL which records messages between users. Apart from the typical ids and message types (all integer types) I need to save the actual message text as either VARCHAR or TEXT. I'm setting a front-end limit of 3000 characters which means the messages would never be inserted into the db as longer than this. Is there a rationale for going with either VARCHAR(3000) or TEXT?

    MySQL: Large VARCHAR vs. TEXT?
  • mysqlコマンドをより便利に安全にするための小粒なTIPS集|サイバーエージェント 公式エンジニアブログ

    初めまして。2010年の3月に入社した oinume です。新年1月からウィルス性胃腸炎に罹りながらもなんとかこのエントリーを書いています。今回は、mysqlコマンドに関する自分が今まで学んだ&教えてもらった細かい実践的なTIPSを紹介します。小粒ですが何かの役に立てば幸いです。 edit (¥e)コマンド mysqlプロンプトにいながら任意のエディタでSQLが編集できちゃいます。具体的には、mysqlコマンドでプロンプト待ちの状態で mysql> edit のように edit または ¥e と入力すると、環境変数EDITORで設定してあるエディタが立ち上がりSQLが編集可能になります。編集が終わったらエディタを終了して ; とやればSQLが実行されます。viなどターミナルで動くエディタに慣れている人は長いSQLを編集する時に重宝する機能でしょう。この技は前職の同僚に教えてもらって、以降便

    mysqlコマンドをより便利に安全にするための小粒なTIPS集|サイバーエージェント 公式エンジニアブログ
  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

    MySQLでテーブルへのカラム追加、インデックス追加やテーブルの再編成などを行うと、その間テーブルに共有ロックがかかってしまいます。そのためこれらのメンテナンス処理は、通常利用者の少ない深夜早朝帯にサービスを止めて実施する必要があります。日はそれを無停止、オンラインのままでできないかという話題です。 基的なアイデア メンテナンス対象の元テーブルをコピーして、作業用の仮テーブルを作ります 仮テーブルに対して、カラム追加などの変更を加えます その間、元テーブルに対して行われる更新処理について差分を記録しておきます 仮テーブルの変更が終わったら、記録しておいた差分データを仮テーブルに反映します 差分データの反映が終わったら、元テーブルと仮テーブルを入れ替えます これと似たようなことを考えた方は結構いらっしゃるのではないでしょうか。ただ、言うは易し、行うは難しです。整合性がきちんと取れるかどう

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
  • MySQLで、指定したときだけクエリキャッシュする - (ひ)メモ

    今までMySQLのクエリキャッシュはは有効にしてたんですが、Webサービスだとキャッシュヒットするようなクエリはそんなに多くないし、どこかで見かけたんですが(失念…)クエリキャッシュをオフにしたら(逆に)パフォーマンスが上がっただか負荷が下がっただかというのも目にしたので、今度クエリキャッシュはオフにしようと思ってました。(どのみちヒット率悪いし) そんなとき、同僚に query_cache_type を教えてもらいました。(4.0からあるオプションなのに今まで知りませんでした。。。><) http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_query_cache_type てっきりクエリキャッシュはオンかオフかしかできないと思い込んでたんですが、"DEMAND" を指定すると、「原則キャッシ

    MySQLで、指定したときだけクエリキャッシュする - (ひ)メモ
    hardfloor
    hardfloor 2010/04/06
    知らんかった。。。
  • [ThinkIT] 第6回:データベースの負荷分散とまとめ (3/3)

    このオンメモリデータによる高速データベースの構築方法ですが、手順はリスト5の通りです。 リスト5:tmpfsをマウント $ sudo mkdir -p /shm/mysql/bookmark $ sudo mount -t tmpfs -o size=2048m tmpfs /dev/shm $ sudo mount -t tmpfs -o size=2048m /dev/shm /shm/mysql/bookmark まず、tmpfsを作成し、適当なマウントポイントにマウントします。ここでは/shm/mysql/bookmarkというディレクトリを作り、そこに2048MBのtmpfsをマウントしています。 次に、MySQLのデータを元々ある場所からコピーして移動します(リスト6)。 リスト6:データベースをtmpfsにコピー

    hardfloor
    hardfloor 2010/04/01
    MySQLのデータをtmpfsに配置するというテクニック
  • たった3秒でInnoDBのデータローディングが快適になるライフハック

    MySQLに限った話ではないが、データベース管理システムに大量のデータを投入するのは時間が掛かり大変苦痛を伴う作業である。劇的に効能があるわけではないが、MySQLを利用しているとき、特にInnoDBを使っている場合にはデータの投入を高速化するためにいくつかテクニックがあるので紹介しよう。皆さんの作業時間が短縮され、少しでも早く帰路に着いたりサービスインさせたりという形でお役に立てれば幸いである。ちなみに、タイトルはネタであるのだが、もし当に3秒で以下の全ての設定を行えた人が居たら教えて頂きたい! ログファイルサイズの調整データ投入時に限った話ではないが、ログファイルサイズを調整するのは更新性能にとって非常に重要なファクターである。バッファプールのサイズが重要なことに代わりはないが、同じぐらいログファイルのサイズも重要である。InnoDBはログファイルを使い切ってしまうと、バッファプール

    たった3秒でInnoDBのデータローディングが快適になるライフハック
  • 結構使えるMySQLのTrigger機能!

    皆さん、ご無沙汰しております。 パソコン周辺機器にお金をかけはじめている笹亀です。 エンジニアはパソコンが商売道具なので、 やはり使いやすい物を使いたくなるのは自然な事ですね。 ご参考までに。。。 マウス  :Logicool MX Revolution(ビックカメラでポイントで購入 キーボード:Bluetooth Mac用キーボード(会社の人から売ってもらいましたw 今回はTriggerについてご紹介したいとおもいます。 Triggerとは、データの変更などのイベントによってあらかじめ指定した処理を自動的に実行する機能です。 最近使用しているデータベースには必ず備えてある機能です。 Oracle,Postgres,MySQLでも当たり前のようにあります。 実際にはどのようなときに使用するものなのでしょうか? ・特定のテーブルに対しての処理のログをとるため ・特定のテーブルのバックアップを

    結構使えるMySQLのTrigger機能!
  • MySQLのパラメータチューニング

    以下は、MySQLに関する参考になるエントリーをいくつか書いてくれているfutsu-9さんがいいリファレンスになるとして英語エントリーを和訳したもの。実メモリがどのくらいの時の設定値なのかが書かれていないので、想像するしかないが、512MB~1GBくらいの感じがする。 MyISAM利用時に参考となるパラメータ値(魚拓) グローバルバッファ ・key_buffer = 128M ・query_cache_size = 128MB ・query_cache_limit = 4MB ・table_cache = 512 ・delay_key_write = 1 スレッドバッファ ・sort_buffer_size = 32M ・myisam_sort_buffer_size = 32M ・tmp_table_size = 64MB ・wait_timeout = 60 futsu-9さんのMyI

    MySQLのパラメータチューニング
    hardfloor
    hardfloor 2010/02/17
    MyISAMのチューニングの際に参考になる
  • MySQLのEXPLAINを徹底解説!!

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

    MySQLのEXPLAINを徹底解説!!
  • 現場指向のレプリケーション詳説

    この文書は、技術評論社刊『WEB+DB PRESS Vol.22』に執筆した記事を技術評論社の 許可を得てWWWで公開しているものです。 このWWW版は校正前の原稿を元にしている点、WWW公開後に必要があれば修正する点で、雑誌版の文章とは異なる部分があります。また、図表も雑誌版とは異なります。 予めご了承ください。 また、この文章が対象しているのはMySQL 4.0系なので、最新のリリース版と比べると説明不足な点などが多々あると思います。 レプリケーションの基をおさえるには、この文書はまだ有益だと思いますが、設定レベルの説明は最新のドキュメントを参照するようにしてください。