タグ

MySQLに関するn2sのブックマーク (78)

  • MySQL::Diff - MySQLのデータベースの差分を調べる - Perl入門ゼミ

    Perl › モジュール › here MySQLのデータベースの差分から、差分をなくすようなコマンドを自動生成するツールを探していたら、MySQL::Diffというモジュールを発見した。このモジュールにはmysqldiffというコマンドラインツールがついているので、通常はこちらを使うのが良いみたい。 開発環境と番環境の差分を埋めるのにとても役立つ。すべての差分を表示してくれるわけではなく、テーブル定義に関する部分だけのようなので、トリガやインデックスについては、自分で設定する必要があるようです。 ドキュメントにはオプションの説明がないようなので、--helpコマンドで確認できる。 mysqldiff --help まずデータベースのテーブル定義をmysqldumpで取得しましょう。今は開発環境にいて開発環境のデータベースサーバーに変更を加えていると仮定します。 mysqldump -d

    MySQL::Diff - MySQLのデータベースの差分を調べる - Perl入門ゼミ
    n2s
    n2s 2011/11/27
    mysqldiffコマンド付き
  • Mundane Life: MySQL の Prepared Statement

    Sunday, April 10, 2011 MySQL の Prepared Statement けさは、SQL インジェクションを少しだけ勉強したので、それに関して、ごく私的なメモを書き残しておこうと思う。情報処理推進機構 (IPA) の 「安全なウェブサイトの作り方」 では、SQL インジェクションの脆弱性を予防するための根的解決として、まず第一に 「SQL 文の組み立ては全てプレースホルダで実装する」(改訂第5版 p.9) と述べている。 プレースホルダーには、動的プレースホルダーと静的プレースホルダーがあって、これらについては IPA の 「安全な SQL の呼び出し方」 が詳しい。 また、最近刊行された 『体系的に学ぶ 安全な Web アプリケーションの作り方』(徳丸浩著 ソフトバンククリエイティブ ISBN978-4-7973-6119-3) にも詳しい解説が載っている。大

  • 「優れたMySQL DBAを見分ける27+3の質問」に対する回答例

    随分と更新が空いてしまったが、「優れたMySQL DBAを見分ける27+3の質問」に対する回答例(漢バージョン)を紹介しよう。実は質問を掲載した際「難しい!」というコメントが非常に多く、もう少し易しい質問にするべきだったかと思って次のように呟いてみたのだが・・・ 非常に心強くて安心した。さすがに日を代表するMySQLのエキスパートである。出題のレベルは間違ってはいなかった!! そんなわけで、回答の方に移ろう。 MySQLのサーバープロセスはいくつある?ひとつ。mysqldはシングルプロセス・マルチスレッドモデルを採用しているので、"サーバー"プロセスはひとつである。多くの場合、Linuxなどでmysqldを動かす場合には、お供にmysqld_safeも常に動いていることが多いが、mysqld_safeはサーバーではなく、mysqldのためのラッパーであるので数には含めない。 rootユー

    「優れたMySQL DBAを見分ける27+3の質問」に対する回答例
    n2s
    n2s 2011/04/07
    回答の方だけぶくましてごめんね
  • 高機能で軽快なMySQL・SQLiteの管理ツールSQL Buddy » とりあえず9JP

    phpMyAdminの代わりに使えそうな、MySQL管理ツール、SQL Buddyを使ってみたのでメモしてみる。 インストールは極々簡単で、SQL Buddyのページからダウンロードして解凍後アップロードするだけ。 アップロードしたディレクトリにアクセスすると、以下のようなページが表示される。 phpMyAdmin同様自ホスト以外のデータベースの管理も可能な模様。 このSQLBuddy、操作可能な機能の面では、phpMyAdminに若干劣るものの、操作性というか、管理パネルのシンプルさという点では、phpMyAdminよりも優れていると思う。 また、動作そのものもphpMyAdminより軽快な気がする。 以下はユーザ管理画面の例 あと、インストールして気づいたのだけど… ドロップダウンリストでSQLiteを選択するとSQLiteデータベースも管理可能な模様。 テキストフィールドにDBファイ

  • MySQL の pager が便利だった - xykの日記

    mysql のコンソールで grep とか使えないかなぁと思っていたら pager を使えば出来ることを今更知った。 MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.7.2 mysql Commands http://dev.mysql.com/doc/refman/5.1/ja/mysql-commands.html mysql のプロンプトで以下のように pager (または\P) を指定すればよい。 ・grep mysql> pager cat | grep hoge PAGER set to 'cat | grep hoge'・ファイルに保存 mysql> \P cat > ~/dump.txt PAGER set to 'cat > ~/dump.txt'・less mysql> \P less PAGER set to 'less'less の -S オ

    MySQL の pager が便利だった - xykの日記
    n2s
    n2s 2011/03/01
  • MySQLか、SQLiteか。それぞれのメリットとデメリット。 » とりあえず9JP

    MySQLのメリット ・SQLiteと比較して高機能なので、SQLiteでは使えない関数や手法が使える ・IDEとかで標準対応しているので、開発しやすい ・ネットに情報があふれているから情報集めに苦労しない ・洗練されたDB管理ツールphpMyAdmin が存在する。 (SQLiteにも複数の管理ツールが存在するけど、個人的に使い勝手が良いとは言い難い) ・公式のドキュメントが充実している ▼MySQLのデメリット ・仰々しいし重々しい ・個人的に、MySQLを使う=比較的大きなプログラムを組む時という認識があるので、何となくストレスを感じる ▼SQLiteのメリット ・PHP5以上?とApacheが動作する環境であれば動作するので、「どこのサーバで動かすー」とかそういった事を気にしなくて済む。 ・MySQLより軽快に動作する気がする ・個人的に、SQLiteを使う=小さい簡単なプログラ

  • 急いでいる人のためのMySQLのユーザ権限付与講座 - sanonosa システム管理コラム集

    MySQLでは細かいレベルの権限付与が可能ですが、大抵の場合そこまで細かいレベルの権限付与は必要ないですよね? マニュアルを読まないか、もしくはちょっとしたメモ書きを見る程度でおおよそ使い方が理解できるくらいならいいのに、といつも思います。 そこで今回は、MySQLのユーザ権限付与の中でも、とりわけよく行われる手順だけを簡単にまとめてみました。 【まず知っておいたほうが良いこと】 ユーザはmysqlデータベース内のuserテーブルに作られます。 次に例えば以下のユーザの情報を見てみると「_priv」系のカラム値が全部「Y」であることがわかります。この場合はグローバルレベル権限として全部「Y」なので、全てのテーブルに対して接続が可能となります。 mysql> select * from user where User='adminuser' \G **********************

    急いでいる人のためのMySQLのユーザ権限付与講座 - sanonosa システム管理コラム集
    n2s
    n2s 2010/10/12
  • 大人のためのInnoDBテーブルとの正しい付き合い方。

    InnoDB関連でよくある質問のひとつに「テーブルのメンテナンスは何をすればいいんですか?」というものがある。InnoDBMySQL 5.5でデフォルトストレージエンジンとなるため、InnoDBのテーブルメンテナンス計画を立ようと思う機会も増えることだろう。そこで、今日はInnoDBのテーブルメンテナンスの各種方法となぜそうしなければいけないかという理由を解説しようと思う。 ANALYZE TABLEテーブルメンテナンスの代名詞といえば、インデックス統計情報の更新ではなかろうか。運用を続けるうちに、知らず知らずインデックス統計情報が狂ってしまい、思うような性能が出ない。RDBMSにはそのような問題がつきものであるが、InnoDBの場合、ANALYZE TABLEは不要である。なぜなら、InnoDBが自発的に統計情報を更新するからだ。InnoDBは以下の条件に適合すると、ANALYZE T

    大人のためのInnoDBテーブルとの正しい付き合い方。
    n2s
    n2s 2010/09/27
  • YappoLogs: トランザクションを使用したMySQLのおまとめINSERTはどれくらい速いか

    トランザクションを使用したMySQLのおまとめINSERTはどれくらい速いか 元ネタはMySQL のおまとめINSERTはどれくらい速いか - bonar noteです。 トランザクションでまとめてInsertしてからcommitしたほうが速くなるので、元ネタのベンチマークをベースにして試してみました。 環境は macports で入れた mysql 5.1.44 です。 まぁnormalからbulk(100)くらいの差は出てなくても、トランザクション使ってまとめてコミットしても多少速くなっとりますね。 normal と txn の差よりも bulk(100) と bulk(100)_txn の差が小さいのは、 bulk insert で最初から効率的になってるぶん差が少なくなってるという感じでしょうか。 コードは以下の通り。 Posted by Yappo at 2010年03月09日

    n2s
    n2s 2010/03/09
  • DB復旧・最適化やチートシート等、MySQL関連の開発リファレンス集:phpspot開発日誌

    DB復旧・最適化やチートシート等、MySQL関連の開発リファレンス集をまとめてみました。 Roundup of MySQL Cheat Sheets & Free Quick Reference Guides - Webmaster & Web Design Tools Blog MYSQLのコマンドやセキュリティに関するチートシート集いっぱい SayNoToFlash ? 25 Point Basic MySQL Setup/Optimization Checklist MySQL最適化のための25のチェックリスト How To Change MySQL Root Password MySQLのrootパスワードを変更する方法色々 Recovery after DROP [ TABLE | DATABASE ] | MySQL Performance Blog MYSQLでDROPテーブ

    n2s
    n2s 2009/07/27
  • ALTER TABLEを上手に使いこなそう。

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

    ALTER TABLEを上手に使いこなそう。
  • MySQL社のバイスプレジデントがMySQLのクローズドソース化を否定 | スラド オープンソース

    家/.より。以前「有償版の『MySQL Enterprise』だけが機能強化の対象になる?」といった疑惑が広がったMySQLだが、MySQLのコミュニティ担当バイスプレジデントであるKaj Arno氏のブログで、この件に対して否定する発言が述べられている。ブログでは、 MySQL Serverはこれからもオープンソースであり、また機能限定版ではない MySQL Connectorsも同様だ the main storage enginesも同様だ との旨が述べられており、MySQL 6.0のバックアップ機能やMySQLのバックアップ向けMyISAMドライバ、暗号化バックアップ機能や圧縮バックアップ機能もオープンソース化される予定とのことだ。これはSun MicrosystemsによるMySQLの買収が関係しているとのことで、ブログではMySQLのコードやAPI、データフォーマットをこれか

    n2s
    n2s 2008/05/08
    とりあえずひと安心。
  • http://www.technobahn.com/news/2008/200804172000.html

    n2s
    n2s 2008/04/19
    http://b.hatena.ne.jp/entry/7173366といい、technobahnは釣りニュースサイトかと思うようになってきた。
  • blog.katsuma.tv

    経緯は自分でもまったく分からないのですが、気づいたらMySQLのrootアカウントを削除してしまいました。普段は開発中のDBに対してselect, update, insert, deleteのみを許した限定的な権限のユーザでゴニョゴニョしていたので、いざ新規テーブルを作成しようかと思ったらrootでつなげない→途方に暮れる、ということになったわけです。 よくある事例としては「rootのパスワードを忘れました」ということはあるかと思うのですが、「rootアカウント自体を削除してしまいました」という事例はなかなか聞きません。と、いうわけで地味に対応が困ったのですが、何とか復旧できたのでそのメモを記しておきます。OSはFedora5です。 まず、起動しているmysqldを停止させます。Fedoraだと(*) /etc/init.d/mysqld stop で、停止します。 (*) 起動パスなど

    n2s
    n2s 2007/07/18
    rootアカウントの復旧法
  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

    n2s
    n2s 2007/07/12
  • http://www.res-system.com/item/550

    n2s
    n2s 2007/07/12
    インデックスについて
  • http://www.medmk.com/tips/postgresql.htm

  • MySQLクイック・リファレンス

    この文書は、osCommerceで使用しているデータベースMySQLの基的な使い方について解説しています。おもにデータベースの管理者よりも、ユーザに向けて書かれています。 はじめに ここでは、MySQLサーバは起動しているものとして説明します。 MySQLの文字について MySQLでは、データベース名やテーブル名の大文字と小文字を区別しています。それ以外は区別しません。 MySQLのフィールド名やテーブル名に使える文字は、英数字と_(アンダーバー)、$、サーバのキャラクタセットにある文字です。 知っておきたいコマンド mysqladmin(データベースの作成・削除や、MySQLサーバの情報を得る) mysqlshow(データベース、テーブルの情報を表示する) mysqlMySQLクライアントの起動) mysqldump(データベース、テーブルをダンプする) myisamchk(テーブル

    n2s
    n2s 2007/07/04
    (2012/10/29)2006年9月1日 更新