2008/6/3 火曜日

PHP:stripslashesやmagic_quotes_gpc off以外のエスケープ

Filed under: MySQL, PHP — tiny-p @ 11:04:46

参考:
http://www.syon.co.jp/syontech/tech021.html
http://www.syon.co.jp/syontech/tech003.html

文字コードにShift_jisを使用した場合、2バイト目が「5C」となる文字列をエスケープする場合に、「\」が「5C」で表わされる為に, mysql_real_escape_string()などでエスケープした場合に「能」や「表」といった漢字は「能\」や「表\」になる(5C問題)。対策として、他の文字コードを使う、一時的に変換してエスケープする、その為のエスケープ処理の関数を書く等が考えられる。

2008/4/23 水曜日

MySQL:LIKE文で余分なものまでヒットしてしまう場合

Filed under: MySQL — tiny-p @ 11:50:14

MySQLでLIKE文による抽出で、
期待通りの検索結果を出してくれない
(期待しないものまでヒットしてしまう)場合の対処方法。

そのLIKEで検索したいフィールドに「BINARY」を付加する。
参考:
http://qa.tiny-p.com/cgi/get_rss.pl?q=mysql%81%40%83o%81%5b%83W%83%87%83%93%81%40LIKE
http://q.hatena.ne.jp/1165905593

2008/2/26 火曜日

MySQL:自動バックアップ(AutoMySQLBackupを導入)

Filed under: MySQL — tiny-p @ 17:26:37

参考:http://kunik.no-ip.com/2007/06/13/2106/install-automysqlbackup.html

  • ここから automysqlbackup.sh をダウンロードする (例:/opt に置く)
  • rootで動かすので、# chmod 700 automysqlbackup.sh.2.5
  • ファイル内の、USERNAME, PASSWORD, DBNAMES, BACKUPDIR を変更
    • USERNAME = root
    • PASSWORD = 設定済みのパスワード
    • DBNAMES = “all” ※存在する全てのDBのバックアップを取りたい場合はallを指定する。個別で取りたい場合は、半角スペースで区切って入力。
    • BACKUPDIR = “/var/mysql-backups”
  • /var/mysql-backups を作成
  • bash /opt/automysqlbackup.sh.2.5 を実行して、/var/mysql-backup/daily/ の下にDB名のディレクトリが作成され、その中にファイルが作成されていることを確認
  • さらに細かく設定変更
    • MAILADDR = 自分のメールアドレス
    • COMP=bzip2 (ファイルは小さいほうが良いです)
    • LATEST=yes (これを指定すると、latestディレクトリ以下に最新ファイルのみ別途出力されるようになる。バックアップからリストアするときに分かりやすいので。)
  • ln -s /opt/automysqlbackup.sh.2.5 /etc/cron.daily/automysqlbackup でシンボリックリンクを作成して、1日1回自動実行されるようにする
次のページ »

Copyright (C) 2007 tiny-p. All Rights Reserved.