select adddate(now(), interval- 3 month);

これで、3ヶ月前の日付が得られる。引数は前から
「基準日、差分、単位」
となっている。

year,day,hour等も利用可能。

MySQLでユーザを追加する

| | コメント(0)

ずっとMS SQLSERVERかPostgreSQLをメインに使ってたんだけど、最近MySQLに触れることがどんどん増えてきました。まぁ覚えておいて損はないので備忘録に追加。

grant all on DB名.* to 'ユーザ名'@'%' identified by 'パスワード';

flush privileges;

allは全部できまっせ、という意味。DB名のあとのアスタリスクはワイルドカード。すべてのテーブルに対して、という意味。ユーザ名のあとの「%」はどっからでも、という意味。これを「localhost」としておけば、localhostからの接続しか許可しないようになる。まぁMySQLよりも先にLinuxのFWがあるが。

「flush privileges;」は設定情報を反映させるコマンド。ついついコレを忘れてしまう。

$_SERVER['HTTP_X_DCMGUID'];

UIDとは別物の7桁半角英数字。上記はPHPでの例です。

ドコモも勝手サイトを無視できなくなってきたんでしょうね。開発屋としてはありがたい限りです。ただ、きっと完全にユニークな値であることは保障されないんだろうな。UID同様、使いまわすんだろうな。注意せねば。

手を抜いてyumでperlをインストールしたらどこにインストールされたのかわからんようになってしまいました。ちゃんとソースコード落としてきてmakeしろっていうことなんですよね。

whereis perl

これでperlの実行ファイルへのパスが表示されます。

いやいや、いい加減学習しないとね。(←MySQLで前科アリ)

コマンドプロンプトで実行する例

nslookup -q=ns ドメイン

nameserver = だれそれ、っていう感じで答えてくれます。DNSの切り替えのときに使うくらいなので覚えちゃいないが、ちと使うタイミングがあったので備忘録。

 

CentOSでネットワーク設定

| | コメント(0)

/etc/sysconfig/network-scripts/ifcfg-eth0

NICが2枚あったらeth1になるんでしょうね。

ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.0.99
GATEWAY=192.168.1.1

上から、起動時に有効にするか。「none」で固定IP、「dhcp」でまんまDHCP、あとはIPとゲートウェイ。

その他、MACアドレスも記載されてますが、それはOSインストール時に勝手に書かれます。

 

centos_logo_45.png
いまどきのLinuxってディスクが5~6枚あるので、焼くのが大変だったんですよね。まぁ全部焼かなくてもいいのですが、つい全部焼いておいてしまう。

で、今回CentOSのマシンをセットアップするのにネットワークインストールなるものを試してみました。これがもうカンタンラクチン。

CentOSのisoをダウンロードする際に「CentOS-5.1-i386-netinstall.iso」(今回はCentOS5を使用)を選択してダウンロード。ブートデバイスにUSBメモリが使えるならUSBメモリ、CDだけならこのISOをCDに焼きます。

あとはそれぞれのデバイスでブート、途中まではいつもとおんなじです。

「Installation Method」、インストール方法の選択画面で「http」か「ftp」を選択するだけ。今回はftpを利用しました。

ネットワークの設定は自動にしちゃって、ftpサーバの指定は「ftp.riken.jp」(理研さん、ありがとうございます)。ディレクトリは「/Linux/centos/5/os/i386」、「Use non-anonymouse ftp」にはチェックを入れません。

ここ以降は通常のインストールのまんま。変わりはありません。勝手にファイルをダウンロードしてインストールしてくれます。

OSのメディアなんて何度も使うものじゃないから、これはすっごく便利です。

Parseしてcatchするかどうかの判定でもいいのですが、いまいちスマートじゃないなぁと。

そしたら2.0からTryParseなるメソッドが追加されていました。
いやー、不勉強ここにいたるという感じですな。

int intReturn;
Console.WriteLine (int.TryParse("hoge",out intReturn));

上記例だとFalseが出力されます。

第一引数"hoge"が整数か否かを判定して、「ちげーよ」っていう結果が出てるんですよね。整数だったらTrueが返ります。boolです。

また、Falseの場合にはintReturnに「0(ゼロ)」がセットされます。Falseの0なんですけど、何に使うのかがわかりませんでした。せめて初期値を指定できて、Falseならその値が返ってくれればいいのですが、一行目を

int intReturn = 1234;

としておいても、0が返ります。

 

select
case
when hoge = 1 then '1でした'
when hoge = 2 then '2でした'
end as hogecase from hogetable

わかりにくい例ですが、case~endがまぁcaseブロック、when以降が条件、then以降が結果ですね。コレをしらないと、ロジック側でループさせながらぐりぐり判定させないといけないのですが、知っていることによって大幅にロジックを減らせます。

SQLServerやPostgreSQL限定ではなく、SQL-92に載っている手法なので、他のDBでも利用可能です。知っておくべき、活用すべきでしょう。

String.Format("{0:yyyyMMdd}",DateTime.Now)

まぁこれだけの話なのですが、しょっちゅう書き方忘れるので備忘録に。