RDSへデータをインポートしようとしたら以下のメッセージが出力されて接続ができなかった。
1 | ERROR 2003 (HY000): Can't connect to MySQL server on 'xxxxxx.ap-northeast-1.rds.amazonaws.com' (110) |
EC2のSecurity Groups設定に、MySQLの許可を追加(rule:リストから”MYSQL”を選択)することで接続できるようになった。
Follow @redwing1300RDSへデータをインポートしようとしたら以下のメッセージが出力されて接続ができなかった。
1 | ERROR 2003 (HY000): Can't connect to MySQL server on 'xxxxxx.ap-northeast-1.rds.amazonaws.com' (110) |
EC2のSecurity Groups設定に、MySQLの許可を追加(rule:リストから”MYSQL”を選択)することで接続できるようになった。
Follow @redwing1300Apache をインストール
$ sudo yum -y install httpd
Apache 起動、自動起動
$ sudo service httpd start
$ sudo chkconfig httpd on
mysql をインストール
$ sudo yum -y install mysql-server
Mysql 起動、自動起動
$ sudo service mysqld start
$ sudo chkconfig mysqld on
conf 設定ファイルの記述をチェック
$ sudo service httpd configtest
AWSへファイルをアップロード
$ scp -i ~/.ssh/(.pemファイル) (アップロードするファイル) ec2-user@(AWSサーバ):/home/ec2-user/
RDSにデータをインポート
$ mysql -u (DBユーザ) -p \
–database=(DB名) \
–host=(RDS名).ap-northeast-1.rds.amazonaws.com < /tmp/backup.sql
OS X 10.8.4 にしてから、xcode からシミュレータ実行した際にエラーが出力されて困っていたが、一時的な対処方法が紹介されていた。
再実行 (⌘+R) でエラーでまくりで困ってたんですよ。(^^)
とりあえず、以下の記事の内容の通り、デバッガを LLDB から GDB に変更。
参照:OS X 10.8.4でXcodeでiOS Simulatorを実行したときにSIGABRTでアプリがクラッシュすることがある問題の暫定的な対処
追記: 6/14 Xcode 4.6.3 がリリースされており、問題も対処されているようです。
Follow @redwing1300iOS アプリで SQLite のマスタデータをデータベースに用意することに少し苦労したので、メモしておく。
iOS アプリで生成した SQLite データベースのテーブル構成を SQLite database browser で確認した。
・CoreData のテーブルには、テーブル名に"Z"が付加されている ・テーブル カラムにも"Z_PK", "Z_ENT", "Z_OPT" などの制御カラム(?)が追加されている
上記制御カラムの生成ルールがよくわからなかったので、CoreData データベースへのデータ追加は CoreData プログラムコードで行うこととした。
(他にいい方法はないのものか?)
CSVデータ取り込みアプリの .xcdatamodel にマスタテーブルを定義する
マスタテーブルへデータを取り込めるように改変する
マスタ データを取り込む
1 2 3 4 5 6 7 8 | $ sqlite3 アプリのデータベース ファイル名.sqlite sqlite> attach database 'マスタを保持したデータベース ファイル名.sqlite' as old; sqlite> .database sqlite> begin; sqlite> insert into main.テーブル名('Z_ENT', 'Z_OPT', …カラム名) select Z_ENT, Z_OPT, …カラム名 from old.テーブル名; 注意点: Z_PK などのプライマリキーは指定できない sqlite> commit; sqlite> .exit |
マスタデータを含むデータベースを xcode プロジェクトに追加しておき、アプリ起動時に以下のコードでコピーする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #pragma mark - Application's documents directory // アプリのドキュメント ディレクトリ パスを返す - (NSString *)applicationDocumentsDirectory { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; return basePath; } - (void)setupSqliteDb { // SQLiteデータベース を保存するパスを取得する NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"BikeMaintenance.sqlite"]; NSFileManager *fileManager = [NSFileManager defaultManager]; // SQLiteデータベースが存在しない場合、作成する if (![fileManager fileExistsAtPath:storePath]) { NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"BikeMaintenance" ofType:@"sqlite"]; if (defaultStorePath) { [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL]; } } } |