MySQL 5.0 (目次)



インストール環境

  • OS
    • CentOS 5.5 (kernel 2.6.18-194.11.1.el5)
  • パッケージ
    • mysql-5.0.77-4.el5
    • mysql-server-5.0.77-4.el5

インストール

  • mysql-serversのインストール
    # yum install mysql-server

MySQLの設定

my.cnfの編集

  • パラメータ設定ファイル「MySQL.conf」を編集し、文字コードをUTF-8に変更します。
    # vi /etc/my.cnf
    
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    old_passwords=1
    default-character-set=utf8            #追加
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    default-character-set=utf8            #追加

自動起動の設定

  • chkconfigコマンドで自動起動をONにします
    # chkconfig mysqld on

  • chkconfigコマンドで自動起動の確認をします。
    # chkconfig --list mysqld
    mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

起動

  • MySQLを起動します。
    # /etc/init.d/mysqld start

rootパスワードの設定

  • mysqlデータベースへログインします。パスワードは何も入力せずにEnterを押します。
    # mysql -u root -p mysql
    Enter password:
    ※mysqlデータベースはmysqlのシステム情報を記録するためのデータベースです。
  • ユーザ情報を確認します。
    mysql> SELECT host,user,password from user;
    +-----------+------+----------+
    | host      | user | password |
    +-----------+------+----------+
    | localhost | root |          |
    | serv10    | root |          |
    | 127.0.0.1 | root |          |
    | localhost |      |          |
    | serv10    |      |          |
    +-----------+------+----------+
    
  • rootユーザのパスワード(mysqladmin)を設定します。
    mysql> SET PASSWORD FOR root@localhost=PASSWORD('mysqladmin');
    mysql> SET PASSWORD FOR root@serv10=PASSWORD('mysqladmin');
    mysql> SET PASSWORD FOR root@127.0.0.1=PASSWORD('mysqladmin');
  • 名前が空白のユーザを削除します。
    mysql> DELETE FROM user WHERE user='';
  • 正しく設定された事を確認します。
    mysql>  SELECT host,user,password from user;
    +-----------+------+------------------+
    | host      | user | password         |
    +-----------+------+------------------+
    | localhost | root | 6f38971106105e69 |
    | serv10    | root | 6f38971106105e69 |
    | 127.0.0.1 | root | 6f38971106105e69 |
    +-----------+------+------------------+
    
  • MySQLからログアウトします。
    mysql> \q

ログローテートの設定

  • syslogのログローテートにmysqld.logを追加します。
    # vi /etc/logrotate.d/syslog
    
    /var/log/mysqld.log  #追加
    /var/log/messages
    /var/log/secure
    /var/log/maillog
    /var/log/spooler
    /var/log/boot.log
    /var/log/cron {
        sharedscripts
        postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
        endscript
    }
  • syslogを再起動します。
    # /etc/init.d/syslog restart

バックアップ

データベース作成

  • バックアップ用のデータベースを作成します。
    mysql> CREATE DATABASE test_db;
  • データベースを切替えます。
    mysql> use test_db;
  • テーブルを作成します。
    mysql> CREATE TABLE t_test(test datetime);
    mysql> DESC t_test;
    +-------+----------+------+-----+---------+-------+
    | Field | Type     | Null | Key | Default | Extra |
    +-------+----------+------+-----+---------+-------+
    | test  | datetime | YES  |     | NULL    |       |
    +-------+----------+------+-----+---------+-------+
  • テーブルにデータを登録します。
    mysql> INSERT INTO t_test VALUES (NOW());
    mysql> SELECT * FROM t_test;
    +---------------------+
    | test                |
    +---------------------+
    | 2010-08-28 15:24:17 |
    +---------------------+
  • MySQLを切断します。
    mysql> \q
  • mysqldumpコマンドでバックアップを作成します。
    # mysqldump -u root test_db --password=mysqladmin > test_db.dump

リストア

バックアップをリストアします。

  • MySQLへ接続します。
    # mysql -u root -p mysql
    Enter password:
  • リストアのため、データベースを削除します。
    mysql> DROP DATABASE test_db;
  • 空のデータベースを作成します。
    mysql> CREATE DATABASE test_db;
  • テーブルが削除されている事を確認します。
    mysql> use test_db;
    Database changed
    mysql> show tables;
    Empty set (0.00 sec)
  • MySQLを切断します。
    mysql> \q
  • リストアを実行します。
    # mysql -u root test_db --password=mysqladmin < test_db.dump
  • MySQLへ接続します。
    # mysql -u root -p mysql
    Enter password:
  • テーブルが復元されている事を確認します。
    mysql> use test_db
    mysql> show tables;
    +-------------------+
    | Tables_in_test_db |
    +-------------------+
    | t_test            |
    +-------------------+
  • テーブルのデータが復元されている事を確認します。
    mysql> SELECT * FROM t_test;
    +---------------------+
    | test                |
    +---------------------+
    | 2010-08-28 15:24:17 |
    +---------------------+

コマンド(一部抜粋)

  • ヘルプを表示する
    mysql> \h

  • データベース一覧表示
    mysql> SHOW DATABASES;

  • データベースの切替
    mysql> use データベース名

  • テーブル一覧表示
    mysql> SHOW TABLES;

  • カラム情報表示
    mysql> desc user;

  • インデックス情報表示
    mysql> SHOW INDEX FROM テーブル名;

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-06 (月) 01:36:12 (8h)