こんどは、ZenCartで文字化けphpMyAdminって・・・dumpしたファイルの方が安全?

少し前に、MovableTypeの文字化けで頭を抱えたのに、、、次はZenCartで・・・。
う~、しっかりした知識がないばっかりに・・・。

やりたかったのは、商品IDを一括返還したかっただけなんですが、、、
 例:
  変更前 → Sample
  変更後 → sample
商品が200個くらいあったんで、一括でできないかと思い。。。
最終的にはphpMyAdminで一括変換出来たんですが、とりあえず文字化け記事を。

  • phpMyAdminで事前にエクスポート
  • 念のためSSH接続でSQLデータをdump
  • Easy Populateで全商品削除
  • Easy Populateで一部データベースが削除できないエラー発生
  • データベースの中身を削除
  • phpMyAdminでバックアップしたファイルをインポート
  • 文字化け発生(焦る)
  • SSHでdumpデータを復旧
  • 問題解決

EasyPopulateのエラー
管理画面に

Deleting of product data debris failed! please see the debug log in your uploads directory for further information.

って!!!??
EasyPopulate導入時に作成したtempフォルダに「ep_debug_log.txt」がありました!

Product debris corresponding to the following product_id(s) cannot be deleted by EasyPopulate:
123(URLで使われるID):123456(セッションID?)
It is recommended that you delete this corrupted data using phpMyAdmin.

phpMyAdminで事前にエクスポートしたデータは、文字コードはEUC。
コメントは文字化けしてないけど、データが文字化けしてる。。。
UTF-8で再読み込みするとデータの文字化けは直るけど、コメントが文字化け。(まぁ、そうですよね)を見ると、確かに

こういったときって、どうすればいいのかなぁ。

SSHでのdumpコマンドもよくわかってなかったので、以下を参照

 mysqldumpでバックアップ&復元 – phpspot

復旧時は、パスワードも必要

$ mysql -u root -p データベース名 < dump.sql

パスワードを聞かれるので、入力。

今回は、これで文字化けも解消。

うぅ、、、知識が無いって・・・。

■環境
ZenCart:Zen Cart 1.3.0.2-l10n-jp-5
PHP:5.2.11
MySQL:5.0.67
phpMyAdmin:2.11.9.5

MySQLのバックアップをスクリプトとクーロンで10日分保存する

WordPressとかZenCartとかよく使うようになってきたんで、データベースのバックアップについて考えてみました。

とりあえず、WordPressはプラグインでデータベースを自動的にバックアップしてくれるのがあったんで、毎日バックアップしてメールで自分に飛ばしてます。

ZenCartはそういったプラグンを見つけられなかったので、検索して幾つか試してみました。

 

まずは、簡単なツールを検索したところ以下のサイトを発見
 ★MySQLの自動バックアップ phpMyBackupPro (masha.webTechLog)
手動でバックアップは出来ましたが、クーロンで自動実行するところでちょっとつまずいて、とりあえず後回し。

次にスクリプトを書いて実行する方法を探して、以下を発見
 ★MySQLのCRON自動バックアップ – overseas*fun
実行時に

RMFILE=mysql.`date -v -”$KEEPDAY”d +%y%m%d`.gz

で“-v”に関してエラーが出てたので、こちらのページを参考に編集
 ★MySQLの定期的バックアップ(cron) : Project MultiBurst
最終的にこんな感じになりました。

#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin

KEEPDAY=10
TODAY=`date +’%y%m%d’`
DBDUMP_FILE=mysql.$TODAY
RMFILE=mysql.`date “-d$KEEPDAY days ago” +%y%m%d`.gz
HOME_DIR=/home/testdir
BACKUP_DIR=$HOME_DIR/dbbackup

cd $BACKUP_DIR

mysqldump -Q  \
–user=dbuser –password=dbpassword testdb >\
$DBDUMP_FILE

gzip $DBDUMP_FILE >/dev/null 2>&1

if [ $? != 0 -o ! -e $DBDUMP_FILE ]; then
echo “SUCCESS! MAYBE!”
rm -f $RMFILE
exit 0
fi

クーロン出の実行は、レンタルサーバの管理画面から設定できたので割愛しますが、上記の参考にしたサイトにも書いてますね。

■その他参考
 ★MySQLのバックアップをcronを利用して定期的に行おう!! (プログラマ 福重 伸太朗 ~基本へ帰ろう~)

PayPalアカウントオプションサービスが表示されない

何かと便利で、何かと使い方が分からないPayPalですが、ビジネスアカウントを作成する際に躓いたのでメモしておきます。

以下、躓いた際の操作手順(ZenCartでの利用を予定して作業)

  1. PayPalサイトでアカウント作成
  2. 直接PayPalのサイトからログイン
  3. “マイアカウント”-“個人設定”-“即時支払い通知の設定”
  4. “マイアカウント”-“個人設定”-“ウェブペイメントの設定”

ビジネスアカウントだと、お客さんがPayPalアカウントを作成することなく買い物が出来るはずなのに、必ずアカウントの作成が必要になる。。。

どうしようもなく、PayPalサポートに電話。
どうやら、アカウントを作成した際にPayPalから送られてくるメールの指示に沿って操作をしなければいけなかったらしい。

そのメールの件名は“PayPalアカウントの利用開始”で、本文中に“こちらからアカウントの利用を開始”というリンクがありました。
こちらからアカウントの利用を開始
パスワードを入力する画面になるので、アカウント作成時のパスワードを入力して完了。

無事に“PayPalアカウントオプションサービス”が表示されました。
PayPalアカウントオプションサービス