MariaDB mysqldump

検索結果を XML/HTML にて出力

・XML

[user]$ mysql -u ユーザー名 -p データベース名

     --xml -e "select * from テーブル名" > ファイル名

・HTML

[user]$ mysql -u ユーザー名 -p データベース名

     --html -e "select * from テーブル名" > ファイル名

mysqldump によるバックアップ/復元

・全データベース

[user]$ mysqldump -x --all-databases -u root -p > ファイル名

[user]$ mysql -u root -p < ファイル名

・データベース

[user]$ mysqldump -u ユーザー名 -p データベース名 > ファイル名

[user]$ mysql -u ユーザー名 -p データベース名 < ファイル名

・テーブル

[user]$ mysqldump -u ユーザー名 -p データベース名 テーブル名 > ファイル名

[user]$ mysql -u ユーザー名 -p データベース名 < ファイル名

・定期的なバックアップ実行

[user]$ vim ~/backup/mysqldump.sh

    #!/bin/sh

    # データベース名
    DB=dbname
    # ユーザー名
    USER=username
    # パスワード
    PW=password

    # 保存ディレクトリ
    DIR=${HOME}/backup
    # ファイル名
    FILE="${DB}-`date +%y%m%d  -d  '1 days ago'`"

    # バックアップ
    /usr/local/mysql/bin/mysqldump \
        -u  ${USER}  --password=${PW}  ${DB}  |  gzip  >  ${DIR}/${FILE}.gz

    # ファイルのパーミッション変更
    chmod  600  ${DIR}/${FILE}.gz

[user]$ chmod 700 mysqldump.sh

[user]$ crontab -e

    0  0  *  *  *  ${HOME}/backup/mysqldump.sh

[user]$ ls -lh ~/backup

    -rw-------  1  user  user  1K  3月  14  00:00  2015  dbname-150313.gz

データのインポート/エクスポート

ファイルへの出力権限、テーブルへの挿入権限の両方が必要

・エクスポート
    DB > select  列名, 列名 
                into  outfile  'ファイル名(絶対パス)' 
                fields  terminated  by  ','   # 区切り文字
                lines  terminated  by  '\n'   # 改行
                from  テーブル名;
・インポート
    DB > load  data  local  infile  'ファイル名(絶対パス)'
                into  table  テーブル名
                fields  terminated  by  ','   # 区切り文字
                lines  terminated  by  '\n'   # 改行
                (列名, 列名);

    動的な値を格納したい場合、列名に @ マークを付ける

    (列1, @列2, 列3)  set  列2 = sysdate();