LAMP環境設定②

MySqlの設定

  • 日本語対応
日本語対応としてMySqlのテーブルをutf8で作成するように設定します。
この設定を行わない場合、テーブルから取得した日本語が???などに文字化けしてしまいます。
①my.cnfを編集(文字コードをutf8に設定)
# vi /etc/my.cnf
②mysqldを再起動
# service mysqld restart
③データベースを作成
ログイン
 # mysql -u root -p
データベース作成
 > create database データベース名;
 例) > create database test_db;
データベースへ移動
 > use データベース名;
 例) > use test_db;
データベースのステータスを表示(文字コードがutf8であることを確認)
 > status;

  • データベースエンジンの変更
MySqlのテーブルの作成を行った場合、デフォルトはMyISAMエンジンを使用する設定となっています。
MyISAMエンジンは、パフォーマンスが高いらしいのですが、トランザクションが使用できないようです。
そこで、ここでは、テーブルのエンジンをトランザクション制御が行えるInnoDBエンジンに変更する方法について書きます。
ログイン
 # mysql -u root -p
データベース作成
 > create database データベース名;
データベースへ移動
 > use データベース名;
テーブル作成
 > create table テーブル名(カラム名 型 その他プロパティ,...);
 例) > create table test(col1 varchar(10) primary key not null, col2 varchar(20));
データベースエンジンの設定および説明の表示
 > show engines;
テーブルのエンジンの表示(EngineがMyISAMであることを確認)
 > show table status;
テーブルのエンジンを変更
 > alter table テーブル名 engine = InnoDB;
 例) > alter table test engine = InnoDB;
テーブルのエンジンの表示(EngineがInnoDBに変更されたことを確認)
 > show table status;
トランザクションが有効になっていることを確認
 トランザクションの開始
  > start transaction;
 行レベルの更新・登録・削除処理を実行
  > insert into テーブル名 values(カラムの値1,カラムの値2,...);
  例) > insert into test values('test','test');
 追加された行を参照
  > select * from テーブル名;
  例) > select * from test;
 ロールバック(warningが出力されないことを確認)
  > rollback;
  ※MyISAMの場合、ロールバック時に以下の警告が出力されロールバックが正常に行われない
    warning code:1196 | message:Some non-transactional changed tables couldn't be rolled back
 変更がロールバックされていることを確認
  > select * from テーブル名;

MySqlを終了
 > exit;
mysqldを再起動
 # service mysqld restart
最終更新:2012年06月26日 01:03
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。