[Ruby] MySQLをRubyで試す
XMLをやってみたけど,なんだか遅い.
結局データベースをやらなきゃいかんのか.つーことで,MySQLにトライする.
MySQLをインストール
うほほー.MacOSXにはなんとパッケージが用意されている.
http://dev.mysql.com/downloads/index.html
別に,ソースからmakeしてもいいのだが,パッケージでインストールする.楽だし.
インストールパスは,/usr/local/で,mysql-XXXXXXXXXXX-powerpcフォルダにインストールされる.
んで,/usr/local/mysqlが,このフォルダのシンボリックリンクになる.
初期設定
MySQLの中のrootユーザでMySQLにログインし,パスワードを設定する.
※注意 >←シェル msql>←MySQL
>mysqladmin -u root mysql>set password for root=password('your-passwd'); mysql>flush privileges;
これでrootにパスワードが設定される.flush privilieges;は実行しないと,変更が更新されない.
mysql>quit >mysqladmin -u root -p
で,パスワードを入力して,ログインできる.-pのスイッチをつけないとパスワードを聞かれないので,ログインできない.
root以外のユーザを作成する.
>mysqladmin -u root -p mysql>use mysql; mysql> grant all on *.* to username@localhost identified by 'yourpassword'; mysql>flush privileges;←いらないかも mysql>quit
usernameとyourpasswordに所望の値を入力.
use mysqlのコマンドは,mysqlというデータベースを使用することを意味する.
mysqlデータベースはユーザ管理などのためのデータベースなのである.
匿名ユーザを削除する
mysql>mysql -u root -p mysql>use mysql mysql>delete from user where User='';
試す
show databases;で現在あるデータベースの一覧を見ることができる.
mysql>show databases; +--------------------+ | Database | +--------------------+ | information_schema | +--------------------+ 1 row in set (0.00 sec)
testというデータベースを作ってみる.
mysql> create database test; Query OK, 1 row affected (0.00 sec)
んで,確認すると,
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | +--------------------+ 2 rows in set (0.00 sec)
ちょっとデータベースを作ってみる.
まず,作成したデータベースを利用するようにするため,mysqlを起動後,特定のデータベースを今から使用することを,useコマンドで指定する.
mysql> use test; Database changed
これで,testデータベースをこれから使用することになる.
ここで,データの要となるデータテーブルを作成する.
テストとして,名前と年齢をデータとして持つ,データテーブルHumanを作成してみる.
mysql> create table human (name char(50), age int); Query OK, 0 rows affected (0.36 sec)
これで,完成.テーブルは,show tables;で確認する.
mysql>show tables; +----------------+ | Tables_in_test | +----------------+ | human | +----------------+ 1 row in set (0.00 sec)
humanテーブルが完成.
このテーブルにデータを入れてみる.
mysql> insert into human values ('hoge',20); Query OK, 1 row affected (0.25 sec) mysql> insert into human values ('hogehoge',27); Query OK, 1 row affected (0.00 sec)
これでデータが二つ挿入.確認すると,
mysql> select * from human; +----------+------+ | name | age | +----------+------+ | hoge | 20 | | hogehoge | 27 | +----------+------+ 2 rows in set (0.00 sec)
こんなもんだ.