cakePHPのブックマークチュートリアルのDB部分でハマった
はじめに
cakePHPを利用するにあたり、公式のブックマークチュートリアルを試しにやってみたところ、DBの基本的な部分についてドキュメントがごっそり抜け落ちており(基本すぎて書いてない?)ハマリ倒したので、同じような初心者の方に助けになればと。
そういうわけなんで、経験者の方には何の参考にもならないと思われ。
前提
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
ターミナルで実行しているMySQLを終了する方法
quit
で終了できる。