AD:
このページを参考にUbuntuにMongoDBを入れようと思ったらうまくいかなかったのでメモしておきます。
やっていることは、GnuPGへキーを登録して、MongoDB用のパッケージ管理システムを登録して、インストールの流れです。
|
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 $ sudo sh -c 'echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list' deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen $ sudo apt-get -y update $ sudo apt-get -y install mongodb-10gen |
操作関係
|
$ sudo service mongodb start mongodb start/running, process 19200 $ sudo service mongodb stop mongodb stop/waiting $ sudo service mongodb restart mongodb stop/waiting mongodb start/running, process 19224 |
データの登録、検索
MongoDBは、JavascriptのエンジンであるSpiderMonkeyを拡張した、Javascriptシェル?です。
なんで、JavaScriptの記述でデータのが取得が可能です。
|
$ mongo MongoDB shell version: 2.2.3 connecting to: test > show dbs local (empty) test (empty) > use test switched to db test > db.test.save( { a: 1 } ) > db.test.find() { "_id" : ObjectId("51285b019fc2311ea475b159"), "a" : 1 } |
Twitter: 0 | Facebook: 0 | Google Plus: 0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
In AppFog, when you connect Database you will use tunnel but I could not access today.
|
$ af tunnel 1: database_name Which service to tunnel to?: 1 Deploying tunnel application 'caldecott-ap-aws'. <span style="color:red;">Error 600: Not enough memory capacity, you're allowed: 2048</span> |
So I searched why and then I found out the problem.
How I fix
When using af tunnel, it uses 64MB that why error was “Not enough memory capacity“.
I just went to Console Page in AppFog and then reduced memory from one of App.
|
$ af tunnel 1: database_name Which service to tunnel to?: 1 Getting tunnel connection info: OK |
Done
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
先月、とあるシステムをPostgreSQL 8.1.3→PostgreSQL 9.1.2にアップグレードしたら、既存システムが動かなくなった。
よく調べてみるとSQLのJoin部分のKeyの型がcharacterだと接続エラーになっていました。
解決方法
で、単純に下記のSQLで型を変更しようと思ったのですが、場所によっては下記のSQLでは型変更ができないところがありました。
|
ALTER TABLE toiawase ALTER COLUMN kokyaku_id TYPE integer USING kokyaku_id::integer; |
解決方法(IndexやViewがある場合)
また調べてみると変更しようとしたKeyがIndexやViewの中でも使用されていることが判明
なので、変更対象のKeyが使用されているIndexやViewをいったん削除して、上記SQLを再度実行して、その後に、削除したIndexやViewを復元させて、
事無きを得ました。ちゃんちゃん
|
#Indexの削除 DROP INDEX name toiawase_Index; #型の変更 ALTER TABLE toiawase ALTER COLUMN kokyaku_id TYPE integer USING kokyaku_id::integer; #Indexの作成 CREATE INDEX toiawase_Index ON toiawase USING btree (kokyaku_id); |
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
基本設定部分
[php]
$ vi /var/lib/pgsql/9.1/data/postgresql.conf
#listen_addresses = ‘localhost’
↓
listen_addresses = ‘*’
#port = 5432
↓
port = 5432
ログの名前
log_filename = ‘postgresql-%Y-%m-%d_%H%M.log’
ログのローテーション
log_rotation_age = 1d
ログのサイズ
log_rotation_size = 2MB
同名のファイルが存在する時は上書きする。ローテーション用。
log_truncate_on_rotation = on
ログのレベル
log_min_error_statement = error
[/php]
ログの細かい内容はこちらを参照してください。
http://lets.postgresql.jp/documents/technical/log_setting
セキュリティ設定部分
[php]
$ vi /var/lib/pgsql/9.1/data/pg_hba.conf
ローカル接続の許可
local all all peer
外部からの接続の設定
host all all 123.123.123.123/32(接続元のIP) password
[/php]
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
Postgresのサイトからrpmを取得
http://yum.postgresql.org/reporpms/
インストール
[php]
$ wget http://yum.postgresql.org/9.1/redhat/rhel-5-i386/pgdg-centos91-9.1-4.noarch.rpm
$ rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
$ vi /etc/yum.repos.d/CentOS-Base.repo
[base]の中に下記のコメントを追加
exclude=postgresql*
[update]の中に下記のコメントを追加
exclude=postgresql*
$ yum -y install postgresql-server
Installed:
postgresql91-server.i386 0:9.1.2-1PGDG.rhel5
Dependency Installed:
postgresql91.i386 0:9.1.2-1PGDG.rhel5 postgresql91-libs.i386 0:9.1.2-1PGDG.rhel5
[/php]
初期設定
[php]
$ chkconfig postgresql-9.1 on
DBの初期化
$ service postgresql-9.1 initdb
データベースを初期化中: mkdir: ディレクトリ `/var/lib/pgsql/9.1/data/pg_log’ を作成できません: ファイルが存在します
$ rm -rf /var/lib/pgsql/9.1/data/pg_log/
$ service postgresql-9.1 initdb
データベースを初期化中: [ OK ]
$ service postgresql-9.1.2 start
postgresql-9.1 サービスを開始中: [ OK ]
$ su – postgres
$ psql -V
psql (PostgreSQL) 9.1.2
[/php]
設定関連
[php]
基本関係
$ vi /var/lib/pgsql/9.1/data/postgresql.conf
セキュリティ関係
$ vi /var/lib/pgsql/9.1/data/pg_hba.conf
[/php]
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
最近MacでRailsの環境を行っているのですが、Rails3にアップデート( たしかMacPortでアップデートしたような)
して、Mysqlで開発を行おうとしたらエラーがでたので、そのメモを書いておきます。
下記のようなコマンドでプロジェクト?を生成して、さっそく走らしてみる下記のエラー
[bash]$ rails new hoge -d mysql
$ cd /hoge/
$ rails s
dyld: lazy symbol binding failed: Symbol not found: _mysql_get_client_info
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.3.2/ext/mysql2/mysql2.bundle
Expected in: flat namespace
dyld: Symbol not found: _mysql_get_client_info
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.3.2/ext/mysql2/mysql2.bundle
Expected in: flat namespace
[/bash]
検索してみていろいろ試してみるが、どれもうまく行かず、最終的に下記のページの内容で解決
http://stackoverflow.com/questions/5894102/bundle-command-the-wrong-mysql2-gem-always-0-3-2
gemのmysqlのライブラリの上げて解決
[bash]
$ sudo gem uninstall mysql2 -i /Library/Ruby/Gems/1.8
$ gem ‘mysql2′,’0.2.7’
$ bundle install
[/bash]
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
本日Mysqlにトラブルがありました、その際の復旧方法をメモしておきます。
さっそくサーバにログインして、確認してみるとMysqlのプロセスは確認できました。
Mysqlに接続を試みるものも接続できず。
とにかく、一度再起動を行ってみました。
|
#/etc/rc.d/init.d/mysqld restart Stopping MySQL: [ OK ] Timeout error occurred trying to start MySQL Daemon. Starting MySQL: [FAILED] |
停止はできるが起動ができませんでした。
解決方法
こういう時は、かならずログにヒントが隠されているのでさっそくログを確認する。
ログの場所はこちら:/var/log/mysqld.log
やはりログに答えは書いてありました、mysqlslow.log に問題ありとのこと。
このログファイルは、SQLの実行が5秒以上かかった場合に残すようにように設定していたログです。
|
# tail /var/log/mysqld.log 110312 17:01:13 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28) 110312 17:01:13 [ERROR] Can't start server: can't create PID file: No space left on device Number of processes running now: 0 110312 17:01:13 mysqld restarted /usr/libexec/mysqld: Error writing file '/var/log/mysqlslow.log' (Errcode: 28) 110312 17:01:13 [ERROR] Could not use /var/log/mysqlslow.log for logging (error 28). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it. |
さっそくmysqlslow.logを調査してみる。
mysqlslow.logのサイズが4GB以上になっている。。。。。
とりあえず、ファイルを退避させる。
その後Mysqlの起動を試みる。
|
# /etc/rc.d/init.d/mysqld start Starting MySQL: [ OK ] |
見事に起動。
課題
上記の対応で、サービスは稼動しましたが、いろいろと課題あります。
- 1.ログファイルにローテションを組むようにしとけ!!
- 2.Nagiosで監視してるけど、今回の現象はプロセスは生きているので発見できず、、、監視体制の見直し
- 3.SQLが5秒以上もかかっているプログラムを潰さないと。。。
恐らく、ログは一時期サーバに高負荷に陥ったときに増産されたと思うんんですが、でも対策しないと
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 1 | Total: 1 | Feedly: 0
AD:
CakephpでMysqlで取得したデータのみだけ文字化けの現象がおきましたので、その時の解決法をメモしておきます。
解決法
/app/config/database.phpに文字コードを指定
|
var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'pass', 'encoding' => 'utf8' , ← 文字コードを指定 'database' => 'dbname', 'prefix' => '', ); |
上記の設定で解決できました。
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
CakephpでWindowsのローカル環境で開発して、Linuxのサーバに公開したときにひかかったので記載しておきます。
Windowsなど、一部のOSはMysqlは、テーブル名など名前の大文字・小文字は区別しないようです。
Linuxの環境下では、大文字・小文字の区別はするのでCakephpでエラーがでた次第です。
(More…)
Twitter: 0 | Facebook: 0 | Google Plus: 0 | Hatena: 1 | Pocket: 0 | Total: 1 | Feedly: 0
AD:
SQL Mk-2を選択した理由は、日本語に対応していること、開発が頻繁に行われていることを理由に選択しました。
ほかにも「DBDesigner」なども試そうかと思いましたが、時間もあまりなかったので、諦めました。
上記のリンクから、ダウンロードしてきて、インストールします。
MySQL ODBCのインストール
MYSQLで接続する場合は、ODBCから接続しないといけないようなので、「MySQL ODBC」をインストールしました。
http://dev.mysql.com/downloads/connector/odbc/3.51.html#win32
上記のURLからダウンロードしてきて、インストールします。
SQL Mk-2のMYSQLの接続方法の詳細はこちらのURLにあります。
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/tips/mysql_connect/
動作画面
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 1 | Total: 1 | Feedly: 0