Archive for the ‘mysql’ Category

 

mysql procedure Error : Result consisted of more than one row

10月 30th, 2013

select into で複数行エラー Error : Result consisted of more than one row が出たら limit 1をつければ良いそうです。

Read full article | コメントは受け付けていません。

partition table range

2月 23rd, 2013

ERROR 1503 (HY000) at line 35: A PRIMARY KEY must include all columns in the table’s partitioning function プライマリーキーにpartitionキーが入っている必要がある。 CREATE TABLE IF NOT EXISTS `payment` ( `user_id` varchar(32) NOT NULL, `item_id` int NOT NULL, /* 略 */ `created_at` TIMESTAMP DEFAULT 0, `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY(`user_id`,`aaa_code`) ) PARTITION BY RANGE (UNIX_TIMESTAMP(created_at)) […]

Read full article | コメントは受け付けていません。

mysql-python mysqldb

2月 8th, 2013

http://mysql-python.sourceforge.net/ http://sourceforge.net/projects/mysql-python/ python 2.6 で 2.7は最新、3.xはこれからのようです。 インストール pip-python install MySQL-python Complete output from command python setup.py egg_info: [localhost] out:     The required version of distribute (>=0.6.28) is not available, こんなメッセージが出たので更新してから再度 easy_install -U distribute Successfully installed MySQL-python Cleaning up… === 参考:fabric に設定して fabric update_python_egg install_python_mysql -R all で10数台1回で更新出来ます。 参考:fabric + cuisineで管理 Fabric, Cuisine and Watchdog […]

Read full article | コメントは受け付けていません。

エラーメッセージから対象文字列をコピーして使うのは大事。mysqlにログ出力させてテスト。

12月 9th, 2012

簡単なことで時間を費やすと・・・胃にくる・・・ wordpressのインストールに時間がかかって染ましました。 mysqlのコンフィグに log=…log を追加して、すべてのログをファイルに出力してみます。 wordpressのinstall.phpでログイン出来たけどdatabaseに接続出来ないとエラーが 121209 22:49:26 2 Connect mywordpress@127.0.0.1 on 2 Query SET NAMES utf8 2 Quit しかし、use databaseとかもしていない様子。。set names utf8が怪しい。 あぁ、、、ただの文字打ち間違いでした。。。 database名wordpressをwordperssにしていた感じで、 ログインしてテストして、権限確認してみたり全部sqlでやっていたのですが、 エラーメッセージをコピー&ペーストしなかったのでまったくエラーになりませんでした。 絶対に合っている自信はあるのに、エラーニナルコノ感じ。 胃に穴があく寸前でした。 * エラーメッセージから対象文字列をコピーして使うのは大事。

Read full article | コメントは受け付けていません。

mysqld_multi stop failed + fabricのsudoユーザーでのコマンド回避策

12月 9th, 2012

mysqld_multi stopが出来ない。。。 設定の問題の可能性はあるけど。(設定の問題でした。) start reportは正常でstopだけ出来ないというのは・・・ http://serverfault.com/questions/400182/mysqld-multi-stop-doesnt-seem-to-work 同様の人がいるようなので諦めてmysqladminで mysqladmin -h 127.0.0.1 -P 29016 -uroot -p shutdown と思ったのですが、/etc/my.cnfや~/.my.cnfのmysqld_multiの設定 user passwordのところがおかしかっただけのようで mysqld_multi –defaults-file=/home/sample/app/conf/mysql/wordpress_master.cnf –log=/home/sample/log/my/mysqld-sample-master.log stop で start stop report問題なく出来ました。 fabricから他ユーザーで実行したときの挙動がいまいちだったので。いろいろ試した。 mysqlはanyusernameというユーザー名の人が実行している場合。 fab -H localhost -p pass stop_mysql local(‘sudo -u anyusername mysqld_multi –defaults-file=%s –verbose –user=root –log=%s %s’ % ( mycnf, errorlog, cmd )) とりあえず、これでstopまで問題なく行けたが。 with settings(sudo_user=”anyusername”): sudo(‘mysqld_multi –defaults-file=%s –verbose […]

Read full article | コメントは受け付けていません。

mysqlの日時,date,datetime,timestampの違い。

12月 7th, 2012

DATE, DATETIME, TIMESTAMPの違い。 http://dev.mysql.com/doc/refman/5.5/en/datetime.html The DATE type is used for values with a date part but no time part. MySQL retrieves and displays DATE values in ‘YYYY-MM-DD’ format. The supported range is ‘1000-01-01′ to ‘9999-12-31′. The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values […]

Read full article | コメントは受け付けていません。

mysql 5.5 innodb

12月 7th, 2012

mysql 5.1だと innodb pluginを入れないと行けないそうでが、5.5はinnodb標準だそうで。 いくつか記事を読むとパフォーマンスが違うそうで。 デフォルトのmy-huge.cnfは一カ所しか変わっていないようで $ diff /usr/share/mysql/my-huge.cnf ./my-huge.cnf 28c28 < skip-external-locking --- > skip-locking http://dev.mysql.com/doc/refman/5.1/en/replacing-builtin-innodb.html http://dev.mysql.com/doc/refman/5.5/en/innodb-configuration.html http://thinkit.co.jp/story/2011/11/25/2343?page=0,1 http://www.atmarkit.co.jp/fdb/rensai/dbwatch2011/dbwatch201101_01.html 5.1でinnodb pluginを利用する場合はこちらが参考になりそうです。 http://d.hatena.ne.jp/sh2/20110720 hdd ssd比較 http://d.hatena.ne.jp/sh2/20090907

Read full article | コメントは受け付けていません。

kyototycoon dual master & recover by ulog + mysql backup

11月 13th, 2012

http://fallabs.com/blog/promenade.cgi?id=18 dual masterはお互いにreplicationするだけで良いみたい。 ulogのコピーは最後の方法で。 終わり。 mysqlバックアップの話。 http://aws.amazon.com/jp/rds/ > 最大5分前まで、保持期間内の任意の時点に DB インスタンスを復元させることができます。自動バックアップの保持期間は、最大35日間まで設定できます。 13.5.8. InnoDB データベースのバックアップと復旧 http://dev.mysql.com/doc/refman/5.1/ja/innodb-backup.html × mysql enterprise backupってのは商用版でしか使えないそうです。 × mysqlhotcopyはisamのみinnodbではダメ ・停止してバイナリの完全バックアップ ・mysqldump ・バイナリログからの差分復旧 構成は、master – slaveにして、本番参照用slave以外に、 他システムから利用されない予備のslaveを作り、それを定期バックアップすると良い。 この状態であればサーバーを停止して完全なバックアップを取ることもできる。 予備のslaveはデータを直接見たりする管理にも使える。 slaveオプションに、log-bin log-slave-updatesが必要 http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_log-slave-updates A -> B -> Cと書いてある部分 log-slave-updatesはAでの更新もBのバイナリログに出力 log-binはBだけのものなのでBでは両方必要 日 ・バイナリバックアップ:そのまま使えるのでリストアが速い。 ・msqldump:バイナリが壊れてる可能性があるので必須 (http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html  slave設定を停止してからdump開始。 mysql> STOP SLAVE SQL_THREAD; mysql> SHOW SLAVE STATUS; //  mysqldump […]

Read full article | コメントは受け付けていません。

mysql memoしようと思ったけど、ソーシャルゲームバックエンド全般メモ

11月 10th, 2012

ある程度想定内だと思うけど、一通り参考資料を確認。 書き込みが多いというところと課金(ポイント)も細かくされるという点(トランザクションで整合性を保ちたい)に注意して考えたいところです。 DeNA mysql ログをパーティションテーブル。 これはかなり重要、確認したかった部分でもある。時限データと永続データをしっかり分ける設計が大切。 http://engineer.dena.jp/2010/11/mysql-for-socialgame.html イベントをテーブル毎にわける考え方が良い。 http://engineer.dena.jp/2011/02/mysql-for-socialgame2.html ソーシャルゲームのためのデータベース設計:そのものずばり http://www.slideshare.net/matsunobu/ss-6584540 ドラゴンコレクション いくつかポイントの設定なども含まれている。5秒ルールなどにも触れている。 http://codezine.jp/article/detail/6336?p=3 2010 GREE ベーシックな解説でわかりやすい。課金部の思考について。 他の最近の記事と比べても見劣りしない思考。 http://codezine.jp/article/detail/5433 2012 ドラゴンクエストX : やってることはみんな同じなんだなという感じで確認用 http://gigazine.net/news/20120824-dragonquest-backstage-cedec2012/ 細かい話は、この他にもいろいろあって参考になる資料も多いので助かりますね。 どのデータをどう保存して行くかの設計が大切みたいです。 * 検討事項 Q4Mか他のキューか、他と言ってもひとつしか検討はしないけどというか 非力サーバーで運用するのにどちらが良いかを確認する。やることは同じなので、システムコストはあまり差はでないと思うけど、開発と運用コスト次第。 * クラウドの話。 やっぱりアマゾンしかないかなという感じ。 時間単価とオートスケール、スケールアップは重要事項か niftyは近い機能が使えるみたいだけど * 関係ない話。 企画、管理と開発で会社が分かれてるケースが多々あるんだなという話をいくつか聞きました。 ソーシャルゲームに限らず、某海外では日本と違って企業がシステム開発部門を持っていることが多いそうで 日本のように開発会社に開発者がまとまってるのとは少し違うようです。 開発者がまとまっている開発会社なら価値は上がって行くはずですが ただの人売りと化したり、安い仕事で潰し合いをしたりよくわからない世界ですね。

Read full article | コメントは受け付けていません。

Error : Cannot load from mysql.proc. The table is probably corrupted | mysql

6月 11th, 2012

Error : Cannot load from mysql.proc. The table is probably corrupted こんなエラー。 mysqlのバージョンが違うようで、バックアップしたデータをそのまま入れたので変更が必要 mysql_upgradeしてみる。 $ sudo mysql_upgrade –datadir=/home/simpleblog/data/my/data > mysqllog mysql_upgrade: the ‘–datadir’ option is always ignored datadirが使えないので $ sudo mysql_upgrade -P 50999 -h 127.0.0.1 > mysqllog にしたらOKでした。 Looking for ‘mysql’ as: mysql Looking for ‘mysqlcheck’ as: mysqlcheck Running ‘mysqlcheck’ with connection arguments: ‘–port=50531′ ‘–host=127.0.0.1′ […]

Read full article | コメントは受け付けていません。