− LOAD DATA INFILE
MySQL 4.0 以前 以前
以前以前
MySQL4.1
概要 概要 概要 概要 文字
文字文字
文字エンコーエンコーエンコーエンコー ディングディングディング ディング
文字エンコーディングの設定方法 ( MySQL4.1 以降)
サーバ側
• 方法 (1) my.cnf
• 方法 (2) コマンドラインオプション
[mysqld]
character_set_server=cp932
# cd /usr/local/mysql
# bin/mysqld_safe --user=mysql --character_set_server=cp932 &
上記上記上記上記いずれかのいずれかのいずれかのいずれかの設定設定設定設定ででででMySQL
サーバサーバサーバサーバをををを起動起動起動すると起動するとすると、すると、、、MySQL
サーバサーバサーバサーバ ののののインスタンスインスタンスインスタンスインスタンス
(mysqld)
ののデフォルトののデフォルトデフォルトデフォルトののの文字の文字文字エンコーディング文字エンコーディングエンコーディングエンコーディングがががが設定設定設定設定されされされされ ますますますます
(
ここではここではここではここではcp932)
。。。。 つまりつまりつまりつまり、、、、CREATE DATABASE
をををを実行実行実行実行してしてしてして作成作成作成作成したしたしたしたデータベースデータベースデータベースデータベースののののデデデデ フォルトフォルトフォルトフォルトのののの文字文字文字文字エンコーディングエンコーディングエンコーディングエンコーディングがががが
cp932
になりますになりますになりますになります。。。。文字エンコーディングの設定方法 ( MySQL4.1 以降)
クライアント側 : mysql ツール
• 方法 (1) my.cnf
• 方法 (2) コマンドラインオプション
[mysql]
default-character-set=cp932
# cd /usr/local/mysql
# bin/mysql --user=mysql -p --default-character-set=cp932
文字エンコーディングの設定方法 ( MySQL4.1 以降)
クライアント側: Java/JDBC
• Connector/J(MySQL 用 JDBC ドライバ ) を使用して MySQL サー バに接続する際に、 JDBC の次のプロパティに Java 側の文字エ ンコーディング名を設定する
− characterEncoding=<Java
のののの文字文字文字文字エンコーディングエンコーディングエンコーディング名エンコーディング名名名>
• Java と MySQL サーバの文字エンコーディング名の対応
utf8 UTF-8
ujis EUC_JP
eucjpms EUC_JP_Solaris (
注1)
sjis Shift_JIS
もしくはSJIS
cp932 Windows-31J
もしくはMP932
MySQL
サーバサーバサーバサーバJava
(
注注注注1) eucjpms
と完全互換ではありません。"
―", "‖", "
-", "¢", "£", "¬", "
¦"
に互換 性がありません。文字エンコーディングの設定方法 ( MySQL4.1 以降)
クライアント側: C クライアントライブラリ
• PHP 等のアプリケーションが利用する C クライアントライブラリ の文字エンコーディングは "latin1" でコンパイルされてるため、
そのまま利用すると文字化けが発生します
• 対策は次の 3 つのうちいずれか
− (1) my.cnf : skip-character-set-client-handshake
サーバ変数− (2)
アプリケーションがMySQL
サーバに接続後に、SET NAME
を実行− (3)
ソースからクライアントライブラリをコンパイル[mysqld]
character_set_server=cp932
skip-character-set-client-handshake
SET NAME cp932
$ ./configure --with-charset=cp932
MySQL の日本語処理に関する 推奨及び注意事項
• MySQL 4.0 以前と MySQL 4.1 以降では日本語処理に関する 実装や設定方法が異なるため、新規に MySQL を導入する場 合は、極力 MySQL 4.1 以降、特に 5.0 以降をご利用ください
• MySQL サーバ側とクライアント側では、極力同じ文字エンコー
ディングを使用した方がトラブルが発生し難くなります
• いわゆるシフト JIS 系を使用する場合は、 cp932 をお使いくださ い ("( 株 )" などの機種依存文字が使用可能なため )
• データベースメタデータ ( データベース名、テーブル名 ) は
MySQL 5.1 が正式にリリースされるまで日本語を使用しない
でください
• MySQL の eucjpms と Java の EUC_JP_Solaris は完全互換では
ありません
目次
• MySQL のインストール
• ユーザデータベースの作成
• MySQL のディレクトリ構成
• サーバ変数と my.cnf( オプション設定ファイル )
• ログファイル
• MySQL のステータス確認方法
• MySQL での日本語処理
• MySQL に関する情報源
• 付録
−
バイナリログMySQL の情報
• MySQL
社提供社提供社提供社提供ののののオンラインマニュアルオンラインマニュアルオンラインマニュアルオンラインマニュアル− MySQL
製品ドキュメントのトップページ• http://dev.mysql.com/doc/
− MySQL
サーバのマニュアル• [
日本語v4.1] http://dev.mysql.com/doc/refman/4.1/ja/index.html
• [
英語v5.0] http://dev.mysql.com/doc/refman/5.0/en/index.html
•
バグバグバグバグ検索方法検索方法検索方法検索方法− MySQL
社のバグトラッキング• MySQL Bugs : http://bugs.mysql.com/
− MySQL
社のフォーラム• MySQL Forums : http://forums.mysql.com/
−
日本MySQL
ユーザ会• http://www.mysql.gr.jp/
•
メーリングリストやメーリングリストログなど有り付録
• バイナリログ
• MySQL サーバの起動スクリプト
INSERT INTO aTable VALUES(1, ‘name1’)
バイナリログ (1/2)
•
記録記録記録記録されるものされるものされるものされるもの− MySQL
サーバに対して行った更新系 更新系更新系
更新系
SQL
文文だけ文文だけだけをバイナリ形式だけ で記録するファイル−
データを修正しないSQL
文は記録 しない−
バイナリログファイルの切替• MySQL
サーバの起動時•
特定の大きさになると次のファイ ルに切替• FLUSH LOGS
コマンドによる切替−
トランザクション単位で記録される•
用途用途用途用途−
データベース障害復旧時のロール フォーワードリカバリ•
増分バックアップとして− MySQL
レプリケーション•
マスターのデータをスレーブに複 製MySQL
サーバサーバ サーバサーバデータデータデータ データ
: 更新 更新 更新 更新SQL文文文文 更新 更新 更新 更新SQL文文文文
INSERT INTO aTable VALUES(1,
‘name1’)
name1 1
バイナリログ バイナリログバイナリログ バイナリログ
①
②
②
クライアントから
バイナリログ (2/2)
• バイナリログ バイナリログ バイナリログ バイナリログの の の の有効化 有効化 有効化 有効化と と と と実際 実際 実際 実際の の の のファイル ファイル ファイル ファイル
−
次のシステム変数にて、バイナリログの有効化とファイル名や設定• log-log[=file_name]
• [=file_name]
を指定しない場合:
データディレクトリ/<host_name>-bin.nnnnnn
− “nnnnnnnn”
は整数(ex. 000001, 000002)
−
今回の例では、/usr/local/mysql/data/<host_name>.log
• その その その その他 他 他 他
−
バイナリログを有効にすると、バイナリログインデックスも作成される•
現在使用されているバイナリログのリストを保持•
バイナリログインデックスのファイル名−
デフォルト: <
バイナリログのファイル名(
整数無し)>.index
− log-bin-index=file_name
サーバ変数で変更可能−
バイナリログはバイナリ形式のファイルなため、mysqlbinlog
コマン ドでテキスト形式に変換するMySQL サーバ用起動スクリプト
• OS 起動時に MySQL サーバを起動させには ?
− 起動スクリプトのサンプルが用意されている
• /usr/local/mysql/support-files/mysql.server
− これを /etc/rc.d/init.d/mysql などにコピー / カス
タマイズして使用する
ドキュメント内
Microsoft PowerPoint - 2-MySQL50_intro.ppt
(ページ 53-65)