Top > Movable Type > MySQL [全て開く]
2006年6月15日

phpMyAdmin のアップロードファイルサイズを変更する

June 15,2006 12:30 AM
Tag:[, ]
Permalink

MySQL + phpMyAdmin によるバックアップで「phpMyAdmin によるバックアップファイルのアップロードサイズに制限がある」と書きましたが、自宅サーバ(Apache)等、管理者権限があれば、このサイズを簡単に変更することができます。

変更前変更前のサイズは2048KBです。

この最大サイズを変更するには、php.ini にある下記の行

php_value upload_max_filesize 2M

の赤色部分を次のように修正します。

php_value upload_max_filesize 8M
変更前これで Apache を再起動すると、最大サイズが変更されます(例は8192KB)。

さらにサイズを拡大する場合は、php.ini の

memory_limit
post_max_size
upload_max_filesize

の関係が

memory_limit > post_max_size > upload_max_filesize

となるように、それぞれ値を変更する必要があります(実際には同値でもOK)。

参考サイトは下記です。

設定ディレクティブ
添付ファイルのアップロードサイズの制限を変更したい
Comments [0] | Trackbacks [2]
2006年6月12日

MySQL + phpMyAdmin によるバックアップ

June 12,2006 12:50 AM
Tag:[, , , ]
Permalink

Movable Type 等のブログツールを MySQL で運用している場合、管理画面の「書き出し」とは別に、データベース(以下DB)からバックアップを取得することができます。
Movable Type を例に挙げると両者の違いは次の通りです。

 書き出しDBバックアップ
バックアップ対象エントリー・コメント・トラックバック・カテゴリーブログ情報やテンプレート等、DBに保存されている全てのデータ
バックアップサイズ無制限無制限(ただしサーバ環境によってアップロードサイズの制限あり)

ということで、DBバックアップについてはバックアップサイズに制限があり、例えばさくらインターネットのスタンダードプランでは約8MBになっています(一番最後の画面参照)。DBのバックアップを利用する際はこの点を考慮する必要があります。

ちなみに私のサイトのDBバックアップデータはすでに12MBを超えており、運用データでは実験することができませんでした。そういう訳で、今回はテストデータ(40エントリー位)を用いて動作の確認を行っています。

以下、phpMyAdmin を利用したバックアップファイル取得方法です。既に他のブログでもかなり紹介されていますが、実際に試してみると新たな発見もありましたので参考になれば幸いです。

1.バックアップのエクスポート

エクスポート手順は2通りあります。ひとつはDB全てのバックアップ、もうひとつはDB内の全テーブルのバックアップです。前者はインポート時にDBの作成から実施し、後者は予め作成されたDBにテーブルのみを作成します。どちらを選択しても差はないようですが、エクスポート時のオプション選択が若干異なります。前者の方が手順は少ないです。

いずれにしても、phpMyAdmin を利用したバックアップではデータベースが何かひとつ存在しないといけないようです。

1.1 DB全てのエクスポート

「エクスポート」をクリックphpMyAdmin のログイン後の画面に表示されている「エクスポート」をクリックします。
詳細設定使用しているDBが複数存在する場合は「エクスポート」からバックアップしたいDBを選択します(ひとつしかなければ選択不要です)。「データベースエクスポートオプション」の「DROP DATABASE」をクリックします(インポート時に同じ名前のDBが存在しない場合はチェック不要)。他の文字コードに変換する場合は「?エンコーディングへ変換する」を選択します。実験ブログは UTF-8 なのでここは「non」です(他の文字コードで運用されているとこの部分の表示は異なると思います)。そして「ファイルで保存する」をクリックして「実行」をクリックします。Windows であればファイルの保存ダイアログが表示されるので、任意のフォルダに保存します。

1.2 DB内の全テーブルのエクスポート

「エクスポート」をクリックphpMyAdmin のログイン後の画面に表示されている「エクスポート」をクリックします。
DB名をクリックエクスポートしたいDB名をクリックします。
「エクスポート」タブをクリック「エクスポート」タブをクリックします。
詳細設定「全選択」をクリックして、その上にあるテーブル名が全て選択されている状態にします。「構造」の「DROP TABLE」をクリックします。他の文字コードに変換する場合は「?エンコーディングへ変換する」を選択します。実験ブログは UTF-8 なのでここは「non」です(他の文字コードで運用されているとこの部分の表示は異なると思います)。そして「ファイルで保存する」をクリックして「実行」をクリックします。Windows であればファイルの保存ダイアログが表示されるので、任意のフォルダに保存します。

2.バックアップデータのインポート

1.1項・1.2項、どちらのエクスポート方法を選択しても、インポートする方法はほぼ同じです。「ほぼ」と書いたのは、1.2でエクスポートした場合は必ず同一のDB名を選択する必要があるからです。1.1のエクスポートを選択した場合、インポートする際に選択するDB名は任意です。
が、話がややこしくなるので、ここではエクスポートしたDB名と同じDB名のDBが存在することを前提に進めます。

DB名をクリックバックアップデータをインポートしたいDB名をクリックします。
「SQL」タブをクリック「SQL」タブをクリックします(冒頭に「データベースがなにかひとつ存在しないといけない」と書いた理由がこれです)。
バックアップファイルを指定「テキストファイルの場所」の「参照」をクリックして先程保存したバックアップファイルを指定し、「実行」をクリックします。
この右側に「最大サイズ」とあるのがバックアップデータの許容サイズを示しています。

これでバックアップデータがDBにインポートされます。

Comments [14] | Trackbacks [9]
2005年6月22日

MySQLでエントリーのフィールドサイズを拡張する

MySQLではエントリーのデータ型に「TEXT型」というものを用いており、最大65535 バイトまで格納することができます。で、このサイズを超える場合、当然のことながらDBに適正に保存することができません(最大長に入らない部分が切り捨てられます。)。実は当サイトを Berkeley DB から MySQL に移行した際、テンプレートデータを記したエントリーが途中で途切れてしまい、調べているうちに上記の原因であることが判明しました。
ということで、MySQLでのフィールドサイズの拡張方法です。インストール前での実行方法ですので、その点は予めご了承ください。

Movable Type インストールアーカイブに含まれている schemas/mysql.dump を任意のエディタで開いて下記のように修正します。

create table mt_entry (
    entry_id integer not null auto_increment primary key,
    entry_blog_id integer not null,
    entry_status tinyint not null,
    entry_author_id integer not null,
    entry_allow_comments tinyint,
    entry_allow_pings tinyint,
    entry_convert_breaks varchar(30),
    entry_category_id integer,
    entry_title varchar(255),
    entry_excerpt text,
    entry_text textmediumtext,
    entry_text_more text,
    entry_to_ping_urls text,
    entry_pinged_urls text,
    entry_keywords text,
    entry_tangent_cache text,
    entry_created_on datetime not null,
    entry_modified_on timestamp not null,
    entry_created_by integer,
    entry_modified_by integer,
    entry_basename varchar(50) not null,
    index (entry_blog_id),
    index (entry_status),
    index (entry_author_id),
    index (entry_created_on),
    index (entry_basename)
);

mediumtext は最大長 16777215 バイトです。ちなみに longtext というものもあり、こちらは最大長 4294967295 バイトです。
テンプレートのフィールドサイズを拡張する場合は、同じファイル内の下記の部分を変更します(多分)。

create table mt_template (
    template_id integer not null auto_increment primary key,
    template_blog_id integer not null,
    template_name varchar(50) not null,
    template_type varchar(25) not null,
    template_outfile varchar(255),
    template_rebuild_me tinyint default 1,
    template_text textmediumtext,
    template_linked_file varchar(255),
    template_linked_file_mtime varchar(10),
    template_linked_file_size mediumint,
    template_created_on datetime not null,
    template_modified_on timestamp not null,
    template_created_by integer,
    template_modified_by integer,
    template_build_dynamic tinyint,
    unique (template_blog_id, template_name),
    index (template_type)
);

修正した後、Movable Type をインストールすることで指定したサイズでDBが作成されます。

Comments [0] | Trackbacks [1]
2005年4月12日

BerkeleyDB と MySQL のベンチマークテスト

念願の自宅サーバ MySQL 化で、早速 BerkeleyDB との性能を比較してみました。
タイトルはDBのベンチマークテストになってますが、具体的には Movable Type の主要な操作を、開始?応答が返ってくるまでのおおまかな時間で示しています。ブラウザは Firefox1.0 を使用しました。

1.コメント投稿

  BerkeleyDB 20s
  MySQL 6s

2.再構築

インデックス

  BerkeleyDB 12s
  MySQL 5s

個別エントリーアーカイブ

  BerkeleyDB 213s
  MySQL 44s

月別アーカイブ

  BerkeleyDB 116s
  MySQL 20s

日別アーカイブ

  BerkeleyDB 151s
  MySQL 35s

カテゴリーアーカイブ

  BerkeleyDB 115s
  MySQL 17s

すべて

  BerkeleyDB 660s
  MySQL 139s

3.エントリーの読み込み・書き出し

エントリーの読み込み

  BerkeleyDB (未測定)
  MySQL 120s

エントリーの書き出し

  BerkeleyDB 150s
  MySQL 96s

グラフでお分かりの通り、レスポンスが飛躍的に向上しています。DBを一人で占有している状態ですのでレンタルサーバではこのままの値は当てはまりませんが、自宅サーバ環境では MySQL に大きなアドバンテージがあることがお分かりになると思います。

エントリーの書き出しは、IEでは読み込みサイズに比例して二次曲線的にレンダリング性能が悪化するようです。ファイルサイズが大きい場合、私の環境の問題でなければこの作業は Mozilla 系のブラウザで行われることをお勧めします。ちなみにIEではいずれのDBについても、書き出しに45分?1時間近くかかりました。
ということで Firefox を使いました。

参考までに上記測定時のブログデータを以下に記しておきます。われながらすごい量です。

対象データ

  • エントリー:564
  • コメント:2751
  • トラックバック:997
  • カテゴリー:43
  • 投稿月:18ヶ月
  • 投稿日:564日
  • インポート用データサイズ:約3.6MB

再構築時の対象テンプレート

  • メインインデックス
  • 最近のエントリー(モジュール化)
  • 最近のコメント(モジュール化)
  • 最近のトラックバック(モジュール化)
  • 月別アーカイブ(モジュール化)
  • サブカテゴリーリスト(モジュール化)
  • Atomフィード
  • RSD
  • RSS1.0
  • RSS2.0
Comments [4] | Trackbacks [1]
Now loading...
Introduction
List of "MySQL"
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.02