• 検索結果がありません。

以前 以前

ドキュメント内 Microsoft PowerPoint - 2-MySQL50_intro.ppt (ページ 53-65)

− 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

バグバグバグバグ検索方法検索方法検索方法検索方法

− Google

− 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)

関連したドキュメント