








さくらインターネットからSharkSpaceに移行するのに一番の問題がMySQLでした.MySQLは4.0と4.1とで文字の扱いが大きく変わっています.また,MySQLの文字の問題は環境によって様々なケースがあり,これをすれば良いという解決方法がありません.きちんと現状を把握して,それぞれの環境に合わせて解決するしかありません.詳しくは日本MySQLユーザ会のWikiを参照してください.ここではMySQL-4.0, 3.X を現在運用しているひとは原則今のままキープ,と言われてしまっています.
色々試行錯誤の結果,私の場合は,”さくらのレンタルサーバで MySQL 4.0 から 5.1 へ移行した記録“が参考になりました.以下に手順を書きます.
まず,私の場合,MySQL4.0の設定はujisでしたが,データ自体はutf8にしていました.そのため,データをそのまま取得する必要があります.そこで,敢えて5.xのmysqldump を使い,–default-character-set=utf8を指定することでうまくいきました.mysqldump-4.0はutf8に対応していないため,5.xのを使う必要があります.実行時に一つ文句を言ってきましたが,問題はないようです.
$ mysqldump --user=user --password=pass --host=db --default-character-set=utf8 dbname > dump
次にdumpファイルの中に記述されている以下の行をsedなどで全部除きます.
SET @saved_cs_client = @@character_set_client;
SET character_set_client = @saved_cs_client;
その後,dumpファイルの最初に以下の行を加えました.これでdumpをリストアするときの環境をutf8にしてくれます.
SET names utf8;
ここまで準備できたら,SharkSpaceのcPanelでデータベースの設定をします.cPanelは日本語化されているのでやり方はすぐわかると思います.Panel内にデータベースの項目がありますので,そこでデータベースとデータベース用ユーザを作成し,ユーザに権限を与えれば良いです.データベースはusername_hogeというデータベース名であればいくらでも作れます.
また,phpMyAdminで作成したデータベースを選択し,操作 -> 照合順序のところで utf8_general_ci を選択しておきました.
最後にsshでアクセスして,mysqlコマンドでリストアすればOKでした.
$ mysql --user=user --password=pass --host=host dbname < dump
Tags:
Hosting,
MySQL,
SharkSpace,
WordPress
関連する投稿
2010/01/31 | Posted in MySQL, WordPress | No Comments









当サイトをSharkSpaceというホスティングサービスに移転完了しました.
さくらインターネットのスタンダードを今まで使っていましたが,色々問題がありました.まず,重かったです.特に管理画面が重く,いつまで待っても編集できないということが良くあったため,更新するのが億劫になっていました.また,自分がさくらを使い始めたときにはMySQL4.0.xしかなかったのですが,WordPress2.9からMySQL4.0をサポートしなくなったので,アップグレードできずにいました.現在さくらでもMySQL5.0.xが使えるのですが,どちらにしろ移行作業をしないといけないので,移転先を探していました.私が望んでいた要件は以下の通りです.
- ssh
- WordPressの速度
- MySQL5
- 容量 (Disk・転送)
- 価格
1. のsshがなかなか厳しい条件です.何故か未だにsshを提供しない,または条件付きのホスティングサービスが多いのです.sshでアクセスするのは基本だと思うのですが,この条件でかなり選択肢が減ります.国内で且つ低価格でsshを提供するのはさくらかxrea系列くらいです.また,4. Disk容量については,さくらスタンダードの3GBでは足りなかったのと,月の転送量が10GBを越えてきたので,それを余裕を持って上回るものを探す必要がありました.
この条件で探すと国内では割高なので,海外のホスティングサービスを中心に探していました.その中で,安定した評判を得ていたのはBlueHost系列 (BlueHost, HostMonster, FastDomain)でした.値段も6-7USD/monthからと,そこそこです.sshを使うには,アカウント作成後にPhoto ID (パスポートなど)を登録する必要があるというのが面倒ですが,それ以外は良さそうでした.
試しにHostMonsterとかを使ってみようかと思っていたところで,SharkSpaceという,聞いたことのないホスティングサービスを推薦しているサイトを見つけました(海外サーバーコレがイチばん!).読んでみるとなかなか良さそうなことが書いてあるので,海外のホスティングサービスフォーラムとかも見てみたところ,確かに地味に評判が良さそうでした.個人的にはsshがPhoto IDなしでいけそうだというところと,値段が安いことに惹かれて,使ってみることにしました.
値段は,真ん中のHammerheadコースの2年契約だと7.95USD/月(190.80USD/2年)なんですが,50%offクーポン(クーポンコード: 50offlife)があるので,3.975USD/月(95.4USD/2年)になります.今1USD=90JPYなので,大体360円/月です.これは安い.これでDisk容量が20GB,データ転送が500GBあります.PHPもモジュールで動きます.さくらのようにCGIモードではありません.
契約してわかったことですが,残念ながらsshを使うにはやはりPhoto IDが必要でした.仕方がないのでiPhoneでIDを写真に撮って,手続きしました.5分程ほどでsshアクセスできるようにしてくれたので,応対は良いですね.
今のところ,不満点はPhoto IDだけで,それ以外はかなり快適に使っています.まだcronで動かしているスクリプトがあるのでしばらくさくらも使いますが,少しずつ移していこうと思っています.
以下は参考サイトです.実際のMySQLの移転作業については別途まとめます.

Tags:
Hosting,
SharkSpace,
WordPress
関連する投稿
2010/01/31 | Posted in WordPress | No Comments









“新しい扉 PlaceEngine ActionScript API公開“という記事で,ActionScript用のAPIソースが公開されていたので,それをベースにPlaceEngineをActionScriptから使ってみました.とりあえず,PlaceEngineのローカルDBを用いて緯度経度を取得することはできるようです.
まず,PlaceEngineをサイトからダウンロードしてインストールします.起動後に,環境設定→ローカルDB→アップデートをします.WifiをOnにした状態で”現在地を取得”を押すと,登録されている位置が取得できるはずです.取得できない場合はPlaceEngine.com Mapから追加してください.
ActionScriptからローカルDBを使うには以下のようにします.
- PlaceEngine連携サイト用アプリケーションキー取得ページで以下の情報を入力してアプリケーションキーを生成
- 認証コード: 表示されているcaptureを入力
- URL: app:/アプリケーション名.swf (helloというアプリならapp:/hello.swf)
- サービス名: アプリケーション名
- PlaceEngineAPI.asをプロジェクトの適切な場所に置く.デフォルトパッケージ名はPlaceEngineAPIになっているので適宜変える.
- PlaceEngineAPIに以下を追加
public function getLocationFromLocal():void{
printMsg("WiFi情報取得中...");
//タイムスタンプとして現在時刻を取得
timeStamp = new Date();
//URL文字列を作成
var URL:String = "http://localhost:5448/locdb?t=";
URL += timeStamp.milliseconds + "&appk=";
URL += appk;
trace("URL: " + URL);
var request:URLRequest = new URLRequest(URL);
var loader:URLLoader = new URLLoader();
//イベントハンドラをセット
setListeners(loader, "Server");
//実際にリクエストを発行
sendRequest(loader, request);
}
- プログラム側からはgetLocationの代わりにgetLocationFromLocalを使う
以上の手順で動くことは確認しました.苦労したのは,正しいアプリケーションキーの取得方法がなかなかわからなかったことです.
getLocation がうまく動かないためWebAPIから直接取得できないのですが,原因はcrossdomain.xmlにあるようです.どうやらcrossdomain.xmlの内容が古いらしく,以下のエラーを吐きます.サーバ側で対応してもらえるように,後で連絡する予定です.
Warning: Domain www.placeengine.com does not specify a meta-policy. Applying default meta-policy ‘master-only’. This configuration is deprecated. See http://www.adobe.com/go/strict_policy_files to fix this problem.
Error: Ignoring policy file at http://www.placeengine.com/api/crossdomain.xml due to meta-policy ‘master-only’.
Tags:
ActionScript,
Flex,
PlaceEngine,
Programming
関連する投稿
2010/01/11 | Posted in Flex, Programming | No Comments