まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary

2012/12/19(水)MySQL設定メモ

InnoDBでMySQLを運用することを前提に書きます。

my.cnfの設定

MySQL 5.5以降ならばInnoDBの新しいエンジンが入っているが、5.1.xの場合はプラグインとなっているのでそれを有効化する。

[mysqld]
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so

また同時に、デフォルトエンジンとしてInnoDBの設定、及びutf8を設定する。

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8
default-storage-engine=InnoDB

mysqlコマンド

コマンドライン書式の例。

# mysql -u root -p
# mysql -u user -pPASS dbname
# mysql -h db-server.dummy.xxx -P 3306 -u user -pPASS dbname

DBとユーザーの作成

CREATE DATABASE dbname DEFAULT CHARSET=utf8;
GRANT all privileges ON dbname.* TO dbuser@localhost IDENTIFIED BY 'PASSWORD';
GRANT SELECT,INSERT,UPDATE,DELETE ON privileges ON dbname.* TO dbuser@localhost IDENTIFIED BY 'PASSWORD';

IPアドレス等を指定する場合は次のようにする。

書式意味
uname@localhostUNIXドメインソケット通信を許可
uname@127.0.0.1ローカルホスト(TCP/IP)を許可
uname@'%'全てのホストを許可
uname@192.168.1.12IPアドレス指定
uname@'192.168.%'IPアドレスが192.168.* のホストを許可

この他、Firawall(iptables)を設定するのはもちろんのこと、MySQLはhosts.allowも参照する

mysqld: ALL

ユーザー情報の確認

use mysql;
select host,user,password from user;

パスワード以外は直接書き換えれば良い。

パスワードは次のようにする。

SET PASSWORD FOR user@localhost=PASSWORD('password');
SET PASSWORD FOR user@your.host=PASSWORD('password');

文字コードの確認

show variables like 'char%';

2012/09/28(金)Perlの型グロブと名前空間アクセスの応用

Perlの名前空間と型グロブに関する応用的な話です。高度な内容ですので、少なくともリファレンスについては理解している人向けです。型グロブも多少知らないと難しいかもしれません。

※以下特に断りがない限りPerl 5.10での動作確認です。

続きを読む

2012/08/22(水)input type="text"等の自由リサイズスクリプト

Google ChromeやFirefoxには標準で<textarea>の自由リサイズ機能(マウスでのリサイズ機能)がありますが、input type="text"等のテキストボックスにはその機能がありません。

jQueryで実装してみました。

使い方

以下のCSSとJavaScriptを導入してください。あとは自動的に機能が導入されます。

  • jQueryを先にロードしてください。必要バージョンは分かりません(苦笑)
  • Google ChromeとFirefoxで動作確認しています。
  • CSSの width が掴める部分のサイズになります。
  • CSSの z-index の下3桁(1000で割った余り)がテキストボックスの最小サイズになります。*1
  • CSSの display:none を有効にするとフォームリサイズ機能を無効にできます。
    • テキストボックスの初期サイズの方が小さい場合はそちらが最小サイズになります。
  • IE6,7で動作しましたが、IE8,9では動作しませんでした(動作しないだけで不具合はありません)。
    • 手前にあるspanよりも裏側にあるテキストボックスが優先される謎の仕様のせいです。

続きを読む

2011/05/25(水)enterでフォ-ム内容を送信させない細工

JavaScript

//-----------------------------------------------------------------------------
// ●enterで送信させない
//-----------------------------------------------------------------------------
// Tested : Fx4, GC, IE7/8
function enter_not_submit(evt) {
	evt = evt ? evt : event;
	var e = evt.target || evt.srcElement;
	if (e.tagName != 'INPUT') return true;
	if (evt.keyCode == 13) return false;
	return true;
}

フォーム側

<form action="" method="POST" onkeypress="return enter_not_submit(event);">
	(フォーム内容)
</form>

Formに仕込むだけです。INPUTタグやSubmitボタンの細工は不要。

全INPUT要素を探し出してイベントを登録するハンドラのような無駄な処理も不要。

2010/08/18(水)Pure PerlでのOAuth実装メモ

adiaryに、twitter投稿のためのOAuthを実装したときのメモです。PurePerl動作。

OAuthモジュール(OAuth::Lite::Consumer)を使わずに実装したので、同じことをやりたい人には参考になるかと思います。*1

続きを読む