クレストボウズ株式会社MySQLでCSVファイルに保存されたデータをテーブルにインポートする方法です。前提として、CSVファイル名をsample01.csv、カンマ区切りのフォーマットを持つものとし、テーブル名はtable01とします。インポート作業のタイミングでtable01は作成済みであるとします。データベースにログインした後、以下を実行します。by」を使用して「”」が囲み文字であることを指定すればそのまま読み込むことができます。'"';LOCAL修飾子が機能するかどうかについては、サーバおよびクライアントの設定に依存するようです。bytes」というエラーが出ました。解決策を調べたところ、MySQLサーバの「max_allowed_packet」という値を変更する方法が見つかったのですが、今回その方法は使えませんでした。INTO」文によって挿入するようになっていたため、この文のサイズが「max_allowed_packet」を超えているのがエラーの原因であることがわかりました。そこで、mysqldumpでダンプファイルを生成するときに、レコード毎のINSERT文にする方法を調べました。(3,'ccc');のように生成されるようにする方法です。その方法ですが、mysqldumpを実行するときに、「--skip-extended-insert」というオプションを付けるだけです。以下のように実行します。wp_db1_dump.sqlこのように生成したダンプファイルの難点は、ロードするのに時間がかかることですが、場面により、適宜使っていこうと思います。使用を開始しているシステムで、TEXT型で定義しているデータの大文字と小文字を区別しなければならなくなりました。その時に調べた内容のまとめです。非バイナリ文字列とバイナリ文字列の性質の比較です。文字列検索での大文字/小文字の区別バイナリ文字列に区分されている型を使用していれば問題なかったのですが、既に使用を開始していたため、TEXT型のまま大文字と小文字を区別できるようにしました。前提として、「exmtable01」という名前のテーブルがあるとします。);exmtable01のテーブル定義情報は以下のようになっています。BINARY」に変更します。BINARY;そうすると、exmtable01のテーブル定義は以下のように変更されます。|+------------+-----------------------------------------------------------------------+以上の変更により、TEXT型でも大文字と小文字を区別することができるようになりました。BINARY」を指定すると同様の定義となります。|+------------+-----------------------------------------------------------------------+phpMyAdminを使用している場合は、変更したいフィールドを選択し属性を「binary」に指定すれば、同様の変更を行うことができます。クレストボウズ株式会社Python+MySQLの組み合わせでCGIシステムを作成するために、MySQLとPythonとのインターフェースをインストールします。MySQLの文字コードはutf8とします。mysql-serverパッケージをインストールする。MySQLのrootユーザのパスワードを設定する。/etc/mysql/my.cnfを変更し、文字コードを設定する。utf8PythonとMySQLのインターフェース関連のpython-mysqldbパッケージをインストールする。MySQLdbが実行できれば準備完了です。クレストボウズ株式会社MySQLをインストール後、テーブルを作成するまでに行なう基本操作のまとめです。例として、下記の内容でデータベースおよびテーブルを作成するとします。使用する前提とします。infile」文を使用すると、読み込んだデータが文字化けしてしまう場合があります。設定されていないためです。infile」文は「character_set_database」の設定に従います。「character_set_database」の設定を確認します。sec)以上のように出力された場合、「character_set_database」の設定は「latin1」となっているため、「utf8」に変更します。utf8;もう一度「character_set_database」の設定を確認します。sec)「character_set_database」が「utf8」に変更されたため、文字化けを回避できます。クレストボウズ株式会社MySQLでtext型の列にインデックスを作成する場合、サイズを指定する必要があります。以下の内容のテーブルを作成します。);サイズの指定をせずにインデックスを作成するとエラーになります。lengthそこでサイズを指定します。以下の指定では、name列の最初の100文字を使用したインデックスが作成されます。36度、今日も伊勢崎は暑いです。ここ数日は、暑さ+WordPressと戦っております。以前、データをダンプ、リストアするには(01)を書きました。その時は、ホスティングサービス上にデータをリストアしなければならなかったのですが、どうしてもダンプファイルをそのまま読み込むことができず、苦肉の策としてダンプファイルからINSERT文だけ取り出して何とかリストアしました。かなりの力技だと思います...。作業はなるべくスマートに行ないたいものです。ダンプデータをリストアしようとすると以下のエラーが発生。YES)エラーの原因としては、ホスティングサービスで「LOCK」「UNLOCK」ができないことでした。以前の記事で書いたように、以下を実行してダンプファイルを作成した場合、作成されたファイル中に「LOCK」「UNLOCK」が含まれます。out.dumpこの場合は、作成したダンプファイルの「LOCK」「UNLOCK」をコメントアウトしてからリストアするとエラーになりません。オプション「–skip-add-locks」を追加すると、「LOCK」「UNLOCK」を含まずダンプファイルを作成することができます。out.dumpこちらの方法であれば、作成したダンプファイルの修正も必要なく、修正によるミスも減らせますね。クレストボウズ株式会社localeがUTF-8の環境でEUC_JPのデータベースを作成するの続きです。テーブル数がそれほど多くない環境での作業です。良い方法があったらぜひ教えてください。それぞれの環境は以下の通りです。MySQL、UTF-8(locale、データベースの文字コードとも)まず、【旧システム】での作業です。テーブル毎にcsvファイルを作成します。例として、テーブル名をcrestboz、csvファイル名をcrestboz.csvとします。crestboz.csvこの時点で、crestboz.csvの文字コードはEUC_JPです。作成したcrestboz.csvから、先頭のカラム名が記述された行と最後尾の行数が記述された行を削除します。ファイルの文字コードをUTF-8に変換します。crestboz.utf8.csv次に、【新システム】での作業です。データのインポート対象のテーブルが既存の場合はDELETEします。(*テーブルをDROPして作成し直すと、ID値がリセットされます。)csvファイルをインポートします。以上の作業を、データを移行するすべてのテーブルについて実行します。PostgreSQLを使ってきました。MySQLを使っています。不慣れなため、勉強したことを少しずつ書いていきたいと思います。試したことダンプ時に指定したオプション(--single-transaction)についてオプションなしで実行したところ、エラーが発生。TABLES)がないため。-u)についてオプションなしで実行したところ、エラーが発生。お知らせくださいませ。