Archives by date

You are browsing the site archives by date.

【CentOS】CentOSのルートディレクトリを確認する。

めも。

ルートディレクトリの権限とかを確認したい時とか。

ls -ld

 

【CentOS】sendmailサービスが起動出来ない時の解決メモ。

sendmailを起動しようとした際に下記のようなエラーが出てハマった。

... World writable directory

[ファイル名]:World writable directory のような感じ。

これはsendmailが参照するファイルが権限の緩すぎるディレクトリ下、もしくはファイルそのものの権限が緩すぎる場合に出るエラーらしい。
具体的に言うとパーミッションが「777」になっていると怒られる。
この状態だといつまでたってもサービスの起動ができないので、怒られているファイルの権限を全て「755」に変えると起動できるようになる。

ちなみに自分は上記の対応をしても起動するようにならないので更に調査したところ、CentOSのルートディレクトリ「/」の権限が「777」になっているとアウトということが判明した。

なので下記のようにしてルートの権限も755に変えてやる。

chmod 755 /

これで無事起動するようになった。

 

【EXCEL】文字列が完全一位しているかどうか調べる。

めも。

=EXACT(A1, B1)

完全一致の場合「true」が返り、異なる場合は「false」が返る。

 

【Linux】「httpd.conf」ファイルがどこにあるか探す。

めも。

httpd.confだけじゃなくてほかの色々なファイルでも使える。

locate httpd.conf

これは便利。

 

【MySQL】WHERE句で範囲指定する。

めも。

たとえば特定のカラムの値が10~20のものを取得したいといった場合に便利。

WHERE col_name BETWEEN 10 AND 20

上記のSQLは「以上」、「以下」を指定するための演算子なので10と20は含まれることに注意。

またNOTを付加することで否定の条件も指定可能

WHERE col_name NOT BETWEEN 10 AND 20

 

【CakePHP2.4】find()メソッドでorder by句を指定する。

調べてみたら普通にオプションで渡すだけだった。

$options = array(
	'group' => 'col_name'
);

$this->Model->find('all', $options);

意外と今まで知らなかったので戒めも。

 

【MySQL】GROUP BYを複数カラム指定する際の注意点。

GROUP BY句を複数指定する場合は、下記の通りカンマ区切りでカラム名を指定する。

SELECT *
FROM table_name
GROUP BY col_1, col_2, col3

また下記のようにソート順をそれぞれで指定することも可能。

SELECT *
FROM table_name
GROUP BY col_1 DESC, col_2 ASC

 

【MySQL】SELECT文をチューニングするための情報を取得する。

めも。

SQLを発行する再、文の一番先頭に「EXPLAIN」とつけると、オプティマイザのデバッグ情報を取得することが出来る。

下記例。

EXPLAIN SELECT * FROM table_name WHERE id = 1

上記SQLによって取得出来る情報の「type」の欄が重要。

「type」には下記表のものが多く見られる。

system テーブルに1レコードしかない状態
const マッチするレコードが1件しかない状態。PRIMARY KEYまたはUNIQUEインデックスを利用して検索される
eq_ref JOINにおいてPRIMARY KEYまたはUNIQUEインデックスを利用して1つのレコードを検索している状態。理想的なJOINの形式
range インデックスを用いた範囲検索
index すべてのレコードのインデックスをスキャンする必要がある状態(フルインデックススキャン)
ALL すべてのレコードを走査する必要がある状態(フルテーブルスキャン)

上から順に高速なので、なるべく上に近づくようなSQLを発行してやれば結果的にパフォーマンスは上昇する。