2009年1月3日土曜日

【初SQL】2 データベースの作成と設定


  • 2.1 MySQLデータベースの作成

    • MySQL自体は導入済みなので、ここの指示にしたがって設定を実施する。
    • rootのパスワードを設定しようとするがだめ。

      mysql> set password for root=password('xxxxxxxxxxxxxxxxxxx');
      ERROR 1133 (42000): Can't find any matching row in the user table

      ん? と調べると、

      mysql> select user from user;
      +------+
      | user |
      +------+
      | root |
      | |
      | root |
      | |
      | root |
      +------+
      5 rows in set (0.00 sec)

      いるけど。しょうがないからmysqladminからやってみる。

      $ /usr/local/mysql/bin/mysqladmin -u root password xxxxxxxxxxxxxxxxxxx
      $ sudo /usr/local/mysql/bin/mysqladmin reload
      Password:
      /usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
      error: 'Access denied for user 'root'@'localhost' (using password: NO)'

      あれ? mysqlをためす。

      $ /usr/local/mysql/bin/mysql -u root
      ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

      となぜかパスワードがかかっている。mysqlに入ってuser tableをみてみる。

      mysql> select user, host, password from user;
      +------+------------+-------------------------------------------+
      | user | host | password |
      +------+------------+-------------------------------------------+
      | root | localhost | *B40BADE4ACCE28CAA2A785AB5BFCBDEDDB985F11 |
      | root | hoge.local | |
      | root | 127.0.0.1 | |
      | | localhost | |
      | | hoge.local | |
      +------+------------+-------------------------------------------+
      5 rows in set (0.00 sec)

      う、いちおうhost=localhostには入っている。不審だ、、、まあいいや。
    • ユーザ'lrngsql'を作成。
    • bankデータベースを作成。
    • えっと、ExamplesのURLは変わってた。http://examples.oreilly.com/learningsql/からDL。
    • これをsourceで読込み。
    • よかった!とりあえず設定できた!

  • 2.2 mysqlコマンドラインユーティリティの使用

    • 問題なし。

  • 2.3 MySQLのデータ型

    • この本では、基本である3つのデータ型(文字・日付・数値)のみ取扱う。
    • えっと、このように「この型のレンジはこう」とか言う話のときは、自身のシステムでそれを確認する方法も示して欲しい。
    • 時間が秒までしかないのが、やはり衝撃。あとカレンダーの概念がないのも。

  • 2.4 テーブルの作成

    • 指示通り操作を実施。

  • 2.5 テーブルへのデータの挿入と変更

    • 指示通り操作を実施。

  • 2.6 文も使い方次第

    • あれ? 外部キー制約のエラーがでない。

      mysql> insert into favorite_food (person_id, food)
      -> values (999, 'lasagma');
      Query OK, 1 row affected (0.00 sec)

      mysql> select * from favorite_food;
      +-----------+---------+
      | person_id | food |
      +-----------+---------+
      | 1 | cookies |
      | 1 | nachos |
      | 1 | pizza |
      | 999 | lasagma |
      +-----------+---------+
      4 rows in set (0.00 sec)

    • とりあえず、先へ進むことにする。

  • 2.7 bankスキーマ

    • 特になし。


やっぱPrologとSQL(RDB?)は似てるよなぁ。
こつこつ。

0 件のコメント: