Linuxで複数のファイルから指定した文字列があるファイルを探す

Laravelで動作確認をしていたら、以下のメッセージが表示された。


FatalErrorException in aa46d5a9af7f08e3711eea3388f8b092 line 8:
Class 'FOrm' not found

どのファイルでスペルミスをしているかわからなかった。
そこで、以下のコマンドを実行して、どのファイルにスペルミスが入っているか調べた。


$ find ./ -type f -print | xargs grep 'FOrm'

PHPでサポートされているタイムゾーン指定の文字列

PHPの案件で、タイムゾーンを指定する時に、
Asia/Tokyoを指定する。

ネットで検索していて、Asia/Tokyoを指定していた。
しかし、他の国の場合、どうやって指定するのか気になっていた。

PHPでサポートされるタイムゾーンのリスト

LaravelでSQLSTATE[HY000] [2002] Connection refused

Laravelで作成したWebアプリケーションを実行したときに、
以下のメッセージが発生した。
理由は、メッセージの通り、コネクションがつながらないから。

今回の原因は、単純にMySQLを起動していなかったため。念のために残しておく。


PDOException in Connector.php line 55:
SQLSTATE[HY000] [2002] Connection refused

MySQLでCREATE DATABASEコマンド実行時にERROR 1064 (42000)が発生したとき

MySQLで以下のSQLを実行したとき。ERROR 1064 (42000)が発生した。


mysql> CREATE DATABASE database-name;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database-name' at line 1

どうやら、データベース名に「-」が含まれる場合、back quote「`」で囲う必要があるようだ。
以下ならOK。


mysql> CREATE DATABASE `database-name`;
Query OK, 1 row affected (0.00 sec)

知らなかった。

マイグレーションってなんだろう

マイグレーション、マイグレーションと使っていたけれど、どんな意味なんだろう。
単語はわかる。migration。

意味は、辞書を調べてみると、
名詞で、「移住、(鳥、魚などの)移動」という意味。

データベースにテーブルを作成、削除するのに、意味が移住や移動なのか。
マイグレーションファイルの使い方が、データベースに修正を加える度に追加されていって、
1st migration file, 2nd migration file, 3rd ….
のように最初の状態から変化することを「移住、移動」として考えればしっくりくるかな。

.gitignoreの設定をしてみる

.gitと同じフォルダに存在する.gitignoreを設定することにより、
gitで管理したくないフォルダ、ファイルを指定することができる。

たとえば、php_errors.logをGitで管理したくない場合。
まずは、.gitignoreに設定しない状態で、git statusを実行する。
すると、php_errors.logが、まだaddされていないと表示される。


$ git status
Untracked files:
  (use "git add ..." to include in what will be committed)

        php_errors.log

次に、.gitignoreに無視したい、ファイル名「php_errors.log」を追加する。

その後、もう一度、git statusを実行すると、先ほどの結果が出力されない。簡単。

MySQLでよく使うコマンド

MySQLでよく使うコマンドを残しておく。特にINSERT INTOを良く忘れてしまう。


・データベースの作成
CREATE DATABASE database_name;
※データベース名に「-」が含まれる場合、back quote「`」で囲う必要がある。
CREATE DATABASE `database-name`;

・作成済みのデータベースの確認
SHOW DATABASES;

・データベースの削除
DROP DATABASE database_name;

・テーブルの作成
USE database_name;
CREATE TABLE table_name (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(255));

・作成済みのテーブルの確認
USE database_name;
SHOW TABLES;

・テーブルの定義の確認
DESC table_name;
DESCRIBE table_name;

・テーブルの削除
DROP TABLE table_name;

・INSERT文
INSERT INTO table_name (name) VALUE ('MySQL TAROU');

・SELECT文
SELECT * FROM table_name;
SELECT * FROM table_name\G

・UPDATE文
UPDATE table_name SET name = 'MySQL HANAKO';
※WHERE句を指定しないと、全部のレコードが更新されてしまう。

・DELETE文
DELETE FROM table_name;
※WHERE句を指定しないと、全部のレコードが削除されてしまう。

・そのほか、良く使うもの
WHERE句
UPDATE table_name SET name = 'MySQL HANAKO' WHERE id = 1;
DELETE FROM table_name WHERE id = 1;

ORDER BY句
データの取得順序を指定する。なにも指定しない場合は、ASC(昇順)になる。降順はDESC。
SELECT * FROM table_name ORDER BY id;
SELECT * FROM table_name ORDER BY id ASC;
SELECT * FROM table_name ORDER BY id DESC;

COUNT関数
データの個数を集計する。
SELECT COUNT(*) FROM table_name;

Gitでローカルリポジトリにリモートリポジトリを登録する

Gitでローカルリポジトリにリモートリポジトリを登録する。


$ git remote add origin [.gitのリモートのパス]

ローカルリポジトリにcommitしてあるファイルを、リモートリポジトリにも反映する。


$ git push origin master