■概要
(xampp liteインストール後のMySQL設定ですが、単に端末の起動が違うだけです)
MySQLをインストールするとrootというユーザが用意されています。
このrootはすべての権限を持っているのでこれをとっかかりにデータベース環境を整えていく手順になります。


MySQLバージョンを確認
> mysql -V



■rootにパスワードを設定
まずrootにはパスワードが設定されていませんので直接SQLで操作できる端末に接続するためにコマンドラインから以下のように打ちます。
(xamppの場合はコントロールパネル右上[Shell]を押して起動できます。)
> mysql -u root


バージョン等が表示され入力が以下のように変わります。
mysql>


まずrootにパスワードを設定する。
mysql> set password for root@localhost=password('********');


接続を終了させるには
mysql> exit


パスワードが設定されたので次回からは以下のようにして接続
> mysql -u root -p



■無名ユーザがいれば削除
作成されてるユーザを確認
mysql> select user from mysql.user;


無名ユーザがいれば削除
mysql> delete from mysql.user where user='';



■新しいデータベース領域を作成
存在するデータベース領域を一覧表示
mysql> show database;


データベース領域を作成
mysql> create database mydb;


このとき文字コードを設定することもできる(EUC-JPを設定したいならujisに)
mysql> create database mydb character set utf8;
わたしはデフォルトのlatin1で文字化けしたことがないのでそのままで作成


現在のキャラクターセットを確認するには
mysql> show create database mydb;


設定できるキャラクターセット一覧を見るには
mysql> show character set;


削除したいときは
mysql> drop database mydb;


別のデータベース領域に移る
mysql> use mydb;



■すべての権限を持ったユーザを新しく作成
mysql> grant all privileges on mydb.* to myuser@localhost identified by '********' with grant option;
(all privilegesはすべてのSQL権限の意味)
(mydb.*はデータベース領域mydbのすべてのテーブル)
(myuser@localhostは、作成するユーザ名がmyuserでアクセスがlocalhostからのみ)
(myuser@"%"ならlocalhost以外のすべてのホストを意味する)
(with grant optionは権限付与 grant文、revoke文が使えるようになる)


ユーザテーブル更新した後はリフレッシュ(ユーザ作成時には実は意味がない)
mysql> flush privileges;


deleteを使ったユーザ削除
mysql> delete from mysql.user where user='myuser';
mysql> flush privileges;


drop userを使ったユーザ削除
mysql> drop user myuser;



■新しく作成したデータベース領域とユーザで接続し直して作業
一旦切断する
mysql> exit


myuserでmydbに接続
> mysql -u myuser -p mydb


テーブル作成
mysql> create table mytab(
    -> id int primary key,
    -> name text not null
    -> ) type=InnoDB;
(type=InnoDBで作成したテーブルはトランザクションに対応)


作成したテーブルが存在してるか確認
mysql> show tables;


create table詳細を表示
mysql> show create table mytab;


テーブルカラム情報を表示
mysql> desc mytab;



■テストデータをテーブルに入れる
--------------------------------------------------------
insert into mytab(id, name) value(1, 'fuji');
insert into mytab(id, name) value(2, 'taka');
insert into mytab(id, name) value(3, 'nasubi');
--------------------------------------------------------
という内容をinput.sqlというファイル名で保存しておく


ファイルに書いたSQLを実行
> mysql -u myuser -p mydb < input.sql


ファイルに出力
> mysql -u myuser -p mydb > output.sql
> select * from mytab;
> exit