MySQLを使おう

これは、筆者自身のメモ書きの意味合いが強いです。
なので、懇切丁寧な説明などはありません。

インストール

それはどこか別箇所を参考に。 ちなみに以下の説明では、3.23.51-winバージョンを前提にします。

ソースをmakeしてinstall、バイナリ、rpmによるインストール等々ありますが、 バイナリを落とした場合は展開したディレクトリだけでインストール完了です。 /usr/local/mysqlといった適当なディレクトリへ移動させます。

mysqlサーバ起動

mysqlディレクトリのbin以下に、safe_mysqldというファイルがあるので、 下記のように実行します。

# ./safe_mysqld &

ちなみに動作確認は次のコマンドで行います。

# ./mysqladmin ping

停止は次のコマンドで行います。

# ./mysqladmin -u root -p shutdown

小メモ

よく使うコマンドはパスの通っているディレクトリにシンボリックリンクを貼っておくと よいでしょう。

# cd /usr/local/bin/
# ln -s /usr/local/mysql/bin/mysql mysql
# ln -s /usr/local/mysql/bin/mysqladmin mysqladmin
# ln -s /usr/local/mysql/bin/mysqldump mysqldump

mysqlクライアントの起動

# ./mysql [データベース名]

mysql管理者パスワードの設定?

# mysqladmin -u root password "****"

ユーザーの登録

mysqlテーブルのuserテーブルに追加する必要があります。 直接INSERT文で挿入しても良いのですが、GRANT文を使ったほうが良いでしょう。

mysql > GRANT ALL PRIVILEGES ON *.* TO bokupi@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;

細かく権限を指定したい場合は、"ALL PRIVILEGES"を"SELECT,INSERT"などといったふうに、 設定してください。

設定後は、以下のコマンドを打ち、設定を有効にします。

# mysqladmin -u root reload

設定したユーザーでログインするには、mysqlクライアントを、下記のとおり起動します。 パスワードを設定していない場合、-pオプションは不要です。

# mysql -u bokupi -p

データベースの作成

まずはデータベースを作成しましょう。 これがスキーマになります。

# mysqladmin -h srv create test_db

或いはmysqlクライアント内で、下記のコマンドを実行してもOKです。

mysql > create database test_db;

#メモ:ttk_db.ttk_db_2002

これでtest_dbデータベースが作成されました。

テーブルの作成

次に、このデータベースの中にテーブルを作成します。 テーブルのフィールド数が多い場合などは、別ファイルに書いておくと便利です。

test_db_tbl.sql
------------------

CREATE TABLE test_db_tbl (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
mail VARCHAR(100),
primary key (id)
);

このファイルを、

# mysql test_db < test_db_tbl.sql
と取り込み、テーブルを作成します。

テーブルの削除

テーブルの削除は、次のようにします。

mysql> drop table test_db_tbl;

データベースの確認

# mysql test_db

これで、データベースを開きます。 或いはdb未指定でmysqlクライアント起動後に以下のコマンドで指定してもOKです。

mysql > use データベース名
そして、データベース内にあるテーブルを確認します。
mysql> show tables;
すると、テーブルの一覧が表示されます。 このテーブル内にあるフィールドを確認するには、
show fields from test_db;
とします。

データベースのアクセス権設定

データベースやテーブルを作成したら、 次はデータベースに対するアクセス権の設定を行わなければなりません。 MySQLでは、アクセス権に関するデータは、mysqlデータベース内に保存されています。 mysqlデータベース内には、

columns_priv
db
func
host
tables_priv
user
などのテーブルがあります。 それぞれユーザー毎、ホスト毎、テーブル毎などでアクセス権を設定できます。

データベースの操作

select * from test_db_tbl where name = 'hage';
データの検索を行います。条件子や演算などについては別サイトをご参照。
insert into test_db_tbl (mail) values ('hoge@yahoo.co.jp');
データの新規追加を行います。指定しなかったフィールドはNULLとなります。
update test_db_tbl set name = 'Bokupi' where mail = 'c-i-mnet@din.or.jp';
データの更新を行います。where句で指定したものを一斉に更新。
delete test_db_tbl where name = 'Bokupi'
データの削除を行います。


CSVファイルによる入出力

インポート

mysql>LOAD DATA INFILE "/path/to/file.csv"
INTO TABLE tablename FIELDS TERMINATED BY ",";
 

エクスポート

mysql>SELECT * FROM test INTO OUTFILE "/tmp/t.csv" FIELDS TERMINATED BY ',';

とりあえずはこんなところで‥。

おまけ1

% tar xvf input.tar

% tar cvf output.tar directory

tarファイル圧縮展開について。

おまけ2

php.iniは、default_charsets="Shift_JIS"で、 mbstring.internal_encoding = EUC-JP、 mbstring.http_output = EUC-JP、 とする。 ;mbstring.detect_order = auto はコメントアウト。 天てれデータベース2002対応に必要な設定は以上。 php.iniの設定を反映させるには、apacheを再起動(/sbin/service httpd restart)しましょう。 ちなみにftpは、proftpdを指定します。