SQL端末に入らずに、コマンドラインからの操作もいろいろできる。
▼ バージョン確認
▼ 端末に接続
初期状態でパスワード設定のないrootユーザは「-p」オプションなしで接続できる。
2行目は「myuser」ユーザでデフォルトの「mysql」データベース領域に接続する。
3行目は「myuser」ユーザで「mydb」データベース領域に接続する。
4行目は外部ファイル「input.sql」に記述されたSQL文を端末で実行
5行目は端末に接続してる間のやり取りを外部ファイル「output.sql」に書き出させる
SQL端末に接続すると、手打ちでSQL文を実行できる。
接続中は、「mysql>」みたいなプロンプトになる。
▼ バージョン確認
▼ 切断(端末を抜ける)
▼ ユーザ操作
最初から存在するrootユーザが全権限を持っているので、rootユーザを使っていろいろ設定していく。
MySQLの全ユーザは、「mysql」データベース領域の「user」テーブルで管理されているので以下のようにして見ることができる。
・ユーザ確認
※これもテーブルなので直接SQL操作ができる。但しテーブル更新後は以下のようにリフレッシュが必要。
・ユーザテーブル更新後のリフレッシュ
※grantやdrop文を使ったユーザ更新の場合はリフレッシュ不要
・パスワードを設定
※set password for root=password('******');でもいける?
・ユーザを作成
- grant文を使って新たに「myuser」ユーザを作成しています。
- 操作権限は「all privileges」と指定しています。これは全権限を与えるという意味で、単に「all」で指定することもできます。但し、全権限とは言ってもユーザへの権限付与grant,revokeは別となります。
- 「mydb.*」は、「mydb」データベース領域にある全テーブルが対象という意味。「*.*」なら全データベースの全テーブルの意味。
- 「myuser@localhost」は、作成するユーザ名が「myuser」で、アクセスを受け付けるホストが「localhost」からのみ。「myuser@"%"」ならlocalhost以外のすべてのホスト
- 「with grant option」は、grant文やrevoke文といった権限付与を使えるようにするための指定
・ユーザ削除(その1)
・ユーザ削除(その2)
▼ データベース領域を操作
・存在するデータベース領域を確認
・データベース領域を作成
※上はデフォルト文字コードの「latin1」になり、下は「utf8」に指定している。
・現在のキャラクターセットを確認
・設定できるキャラクターセット一覧
・データベース領域の削除
・別のデータベース領域に移動
▼ テーブル操作
・テーブル作成
※type=InnoDB(またはengine=InnoDB)とすることでトランザクションに対応できる。
・テーブル一覧
・テーブル詳細情報
※表示は「ENGINE=MyISAM DEFAULT CHARSET=latin1」のようになる。
・テーブルカラム情報
・トランザクションに対応させる