cakePHPのブックマークチュートリアルのDB部分でハマった

はじめに

cakePHPを利用するにあたり、公式のブックマークチュートリアルを試しにやってみたところ、DBの基本的な部分についてドキュメントがごっそり抜け落ちており(基本すぎて書いてない?)ハマリ倒したので、同じような初心者の方に助けになればと。

そういうわけなんで、経験者の方には何の参考にもならないと思われ。

photo by iogi

前提

MySQLをターミナルで操作するには

みなさんいきなりこんなことやってますが

$ mysql -u root -p
Enter password:

ターミナル起動していきなりこのコマンドを打っても、そんなコマンドねぇって怒られる。
MySQLは「/Applications/MAMP/Library/bin」にあるので、 ターミナルで移動(cd)してから実行するようにすること。

ちなみにグローバルインストールすると、パスに関係なくmysql〜とやっても大丈夫。
ただし、MAMPで普通にMySQLをインストールしただけであればパスを移動する必要あり。

MySQLへのコマンドでのログイン方法

で、移動したら

./mysql -u root -p

でログインする。「./」が忘れがちなので気をつける。

MAMPでインストールしたMySQLの初期パスワードについて

上のコマンドを入力すると、パスワード入れろっていわれるので入力する。MAMPでインストールしたMySQLの初期パスワードは「root」です。 知らないと意外とハマります。

テーブルの新規作成方法について

以下のコマンドで作成することができる。

CREATE DATABASE <テーブル名> CHARACTER SET utf8;

テーブルができているか確認する場合はshow databases;で確認することが可能。 文末の「;」を忘れやすいので注意。

MySQLで利用するテーブルを指定する方法について

チュートリアルではこのクエリ叩いて実行してーと書いてあるのだが、 クエリの中にテーブル名が書かれていないので、 そのままコピペして実行してもエラーで怒られる。 なので、あらかじめこのテーブルを使いますと指定してやってから、 クエリを実行すること。

use <テーブル名>

ここまでやれば、あとはチュートリアルのクエリをターミナルにコピペして実行すれば良い。

ユーザーの作成方法

DBやテーブルを作ったばかりの場合、ユーザーが作られていないので作る。以下のコマンドを実行してユーザーを作成する。

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

データベースへの接続設定

ここまで来たら、データベースから一旦離れて、cakePHPにDBがどこにあり、どうやって接続したらよいかを教える。 app/config/app.phpを開いて、Datasourcesのdefaultの設定を変更する。

具体的にはusername、password、databaseに対して、今までの手順で構築したDB、ユーザー名、パスワードを指定してやる。

接続確認

localhostへ接続し、画面の下の方に以下のように表示(接続できました)されていればOK

f:id:HTak:20160126163030p:plain

ターミナルで実行しているMySQLを終了する方法

quit

で終了できる。