phpMyAdmin Index

Posted by muchag | phpMyAdmin | 2011-05-21 (土) 15:12:25

phpMyAdmin Index

丸っきりの書きかけ項目は Not found になる。

序章
  1. Tips
    1. SQL 文の実行
    2. さくらインターネット -> MySQLのバックアップ or 入れ替え
    3. 大容量の CSV ファイルのインポート
    4. ファイルサイズ

 

参考

公式3.5.0-dev ドキュメント

phpMyAdmin | 2011-05-21 (土) 15:12:25 |

大容量の CSV ファイルのインポート

Posted by muchag | phpMyAdmin | 2011-05-21 (土) 3:41:28

今日、125M 100,345行の CSV ファイルを
phpMyAdmin からインポートしようとしたら
タイムアウトを繰り返した。

何度も繰り返せばインポート自体は可能なようだが
その度に時間もかかるし、ダルい・・・。

【環境】
ローカル XAMPP
[XAMPP] 1.7.3
[MySQL サーバ] 5.1.41
[MySQL クライアント] 5.1.41
[phpMyAdmin] 3.2.4

で、調べてみたところ
インポート画面で
「CSV」
ではなく
「LOAD DATA する CSV」
を選択する手法を見つけた。

LOAD DATA INFILE ステートメントは高スピードでテキストファイルからテーブルに行を読み込みます。

MySQL 5.1 リファレンスマニュアル:8.2.6. LOAD DATA INFILE 構文

これは素敵そう♪

で、早速試してみたところ

1行しかインポートされなかった。

で、また調べたら
インポート用フォルダを利用する手法が載っていた。
Importing Structure and Data Using phpMyAdmin

XAMPP ディレクトリ\phpMyAdmin\config.inc.php

  1. $cfg['UploadDir']   = '';
  2. $cfg['UploadDir']   = './upload';

54行目を上のように修正。

XAMPP ディレクトリ\upload

を作成。

こうしてから、インポート画面にすると、先ほどまでとは異なり

ここから、ファイル名を選択した上で
「LOAD DATA する CSV」を選択したら
見事 10分くらいで 100,345行 をインポート完了。

めでたしめでたし。
 

余談:ディレクトリの指定失敗

この記事の為に SS を撮ろうと設定を元に戻したりしてあれこれやっていたら

上図のように

指定したアップロードディレクトリが利用できません

というエラーメッセージが出て慌てた。

phpMyAdmin のソースを辿ってみると
アップロードディレクトリが取れていないようだった。

  1. $cfg['UploadDir']   = './upload'; // OK
  2.  
  3. $cfg['UploadDir']   = 'upload'; // OK
  4.  
  5. $cfg['UploadDir']   = '/upload'; // NG

5行目のように記述していたのでエラーになっていた。

またくだらないミスを犯してしまった。
プログラミングの神様、ごめんなさい。

phpMyAdmin | 2011-05-21 (土) 3:41:28 |

ファイルサイズ

Posted by muchag | phpMyAdmin | 2011-05-18 (水) 19:08:21

データをインポートしようとして
「アップロードしようとしたファイルが大きすぎるようです」
というメッセージが出た。

これを解消する手法として

php.ini

を編集するものがある。

  • upload_max_filesize
  • memory_limit
  • post_max_size

これら3つのサイズをチェックしてみると吉。

phpMyAdmin | 2011-05-18 (水) 19:08:21 |

SQL 文の実行

Posted by muchag | phpMyAdmin | 2010-07-12 (月) 22:40:18

phpMyAdmin を使っていて、しょーもないことで手間取ったので
二度と同じ罠に落ちないようにメモ。

【環境】
[phpMyAdmin] 3.2.3

phpMyAdmin から SQL を実行しようとした。

#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ”table’ set `column`=replace(`column`, ‘hoge’, ‘moge’) at line 1

そうしたら、上記のようなエラーメッセージが。。。

あれ~ と思いながらあれこれ試してみたけど、てんでダメ。

しばらくジーっと見ていて気が付いた。

テーブル名を「’」(アポストロフィ)で括っていた。
 

右のリストからフィールド名を挿入するときに、何か変な括り文字が出るので
つい余計な「’」(アポストロフィ)を入れてしまった。
テーブル名は何にも括らなくてもOKなのに。。。

本当に詰まらないミス。 😐

phpMyAdmin | 2010-07-12 (月) 22:40:18 |

さくらインターネット -> MySQLのバックアップ or 入れ替え

Posted by muchag | phpMyAdmin,さくらインターネット | 2010-05-07 (金) 15:33:10

去年だか、さくらインターネットレンタルサーバでは
MySQL のVer 5.1 が使えるようになった。

というわけで、私も5.1へ移行しようかと。

1.エクスポート
【環境】
旧 [MySQL]
サーバ:4.0.27
クライアント:4.1.22

phpMyAdminでエクスポートする際に
文字コード別にテーブルをエクスポートすること

具体的には
phpMyAdmin(3.2.3)で
当該DBを選択して

エクスポート タブを開く。

[エクスポート]
WordPress関連のテーブルを全部選択する。

[オプション]
作成するクエリの最大長 「100」に書き換える
これをしないと、インポート時に回線切れを起こす可能性が高くなる。

画面下
ファイルに保存する にチェック
圧縮 「なし」

以下はデフォルトのままだと思うけど
一応覚書。
[エクスポート]
SQLにチェック

[オプション]
構造 にチェック
 AUTO_INCREMENT 値を追加する にチェック
 テーブル名やフィールド名を逆クォートで囲む にチェック

データ にチェック
 完全な INSERT 文を作成する にチェック
 長い INSERT 文を作成する にチェック
 BLOBに16進数表記を利用する  にチェック
エクスポート形式 「INSERT」

エンコーディングへ変換する
non にチェック

2.仕込み

現時点では、私はサイト製作文字コードを「utf8」にしている。

しかし、以前には「euc」やら「sjis」のサイトも作っていたので
そのときのデータは文字コードが異なる。

そのため、文字コード別に
テーブルをまとめてエクスポートしたのだ。

ローカル(自分のPC)には「***.sql」
というファイルができているわけだが
これをTeraPadで開き
15行目くらいのところにある
/*!40101 SET NAMES euc */;

/*!40101 SET NAMES utf8 */;
に書き換える。

[ファイル]-[文字/改行コード指定保存]で
「UTF-8N」を選択して保存。

3.インポート
【環境】
新 [MySQL]
サーバ:5.1.42
クライアント:5.1.30

先頭のサーバの画面で
[MySQL 接続の照合順序] を 「utf8_general_ci」

自分のDBを選択して [操作]タブをクリックし
画面一番下の
[照合順序] を 「utf8_general_ci」

これを忘れると「~」などが「?」に文字化けする。

また、ファイルサイズが大きくて
途中で切れてしまう場合には
bigdump
というPHPモジュールを用いて
サーバ内でインポート。

ローカルで bigdump にDBの設定を書き込み
インポートしたい .sql ファイルと共に
レンタルサーバスペースへUL。

後は bigdump.php にアクセスして
「INSERT」をクリックするだけ。

phpMyAdmin,さくらインターネット | 2010-05-07 (金) 15:33:10 |