とある案件でレンタルサーバ上で動いているサイトのDBデータを、検証用に自分の使えるねっとのVPSのMySQLに移行したときのメモ。

そもそも。phpMyAdminではインポートできるファイルの最大サイズが「最大サイズ: 2,048MB」と記載されている。
それより大きなデータ量だったので、手元のwindows環境のMySQLに取り込むのには、コマンドプロンプトからMySQLをroot権限で起動して「source c:/hogehoge.sql」のようにしてインポートした。

で、使えるねっとのVPS環境でも単純に同じようにできるのかと思ったが、少しはまったのでメモ。

1.SSHでログインし、「mysql -u admin -p」でadminユーザーとしてMySQLにログイン。
2.使用するDBを「use hogehoge」で指定。
2.「source /var/www/vhosts/fugafuga.com/hogehoge.sql」でインストールするSQLファイルのパスを指定してインストール。
3.上の手順でインストールには成功したのだが、文字化けが発生。
4.一旦インストールしたデータをphpMyAdmin上から全削除。
5.DBの文字コードをUTF-8に設定してあるか確認したところ、きちんとUTF-8になっていた。
6.My.cnfの[mysqld]に「skip-character-set-client-handshake」の記述を追加。
[参考 http://blog.cheki.net/archives/349]
7.再度「source /var/www/vhosts/fugafuga.com/hogehoge.sql」でインストールしたところ、文字化けも起こらず成功した。
8.【追記】adminユーザーのかわりにrootユーザーをphpMyAdmin上で作成して、「source /var/www/vhosts/fugafuga.com/hogehoge.sql」でインストールしても成功した。危険なので、rootユーザーはすぐに削除したけどね。
(adminユーザーで事足りるので、rootユーザーを作成する必要はなし)

3 月 3rd, 2009
| Categories: MySQL, インポート
| Tags: , ,

データの件数が重くなるとphpMyAdmin経由でのデータの受け渡しがうまくいかなる場合がある。
ダンプしたSQLファイルを一括で、Winodws環境のMySQLに取り込んでやるには

source c:/hogehoge.sql

のように、sourceコマンドを実行してやればよい。

[参考]
http://homepage2.nifty.com/yoks/TechNote/mysql/MySQL_Inst.htm

書籍情報テーブル(books)から署名(title)列にSQLという文字が含まれている情報だけを取り出すには以下のSQLを発行する。
なお、取り出す列はtitle,publish,publish_date列とする。


SELECT
	title,
	publish,
	publish_date
FROM
	books
WHERE
	title LIKE '%SQL%'
;

%はワイルドカードと呼ばれるもので「0文字以上の文字列」を表す。
なので、’%SQL%’で、「’SQL’という文字の前後に0文字以上の文字列を含む文字列」–「’SQL’という文字列を含む文字列」という意味になる。

ワイルドカードには「任意の1文字」を表す「_」もある。

LIKE演算子では「%」や「_」のようなワイルドカードを含まない固定値を条件値として指定することも可能。その場合、=演算子を使った場合と同様、完全一致検索になる。
ただし、完全一致検索をLIKE演算子を使って行うのはまったく意味がないので、避けるようにすること。

※引用 「書き込み式SQLのドリル―ドンドン身に付く、スラスラ書ける」 山田祥寛著 ソシム